Before you blame a mount error on the disk, ask the kernel whether it knows the filesystem type at all. You will finish with a quick way to read the types your running kernel exposes, tell that list apart from what is mounted, and understand why some entries say nodev.
The central file is /proc/filesystems, documented by filesystems(5). Allow about ten minutes. You need a shell and a mounted proc filesystem, which is the normal arrangement on Linux.
manpages package is version 6.7-2, whose filesystems(5) page is from Linux man-pages 6.7, dated 28 January 2024.Start with the file the manual names as the normal interface for supported filesystem types:
$ sed -n '1,120p' /proc/filesystems
nodev sysfs
nodev tmpfs
nodev proc
ext4
vfat
overlay
Your output will be longer or shorter. The first column is either nodev or blank. nodev means the filesystem does not need a block-device backing store. It does not mean the filesystem is broken, absent or unsafe.
Checkpoint: confirm that the file exists and is readable.
$ test -r /proc/filesystems && echo '/proc/filesystems is readable'
/proc/filesystems is readable
Recovery: if that check fails, do not conclude the kernel supports no filesystems. The manual says /proc/filesystems depends on proc being mounted on /proc, so investigate the host's normal proc setup first. The manual also mentions a legacy sysfs(2) enumeration interface, but it is not the practical shell interface used here.
Filter for the entries that are not marked nodev:
$ awk '$1 != "nodev" { print $1 }' /proc/filesystems
ext3
ext2
ext4
vfat
btrfs
proc, sysfs and tmpfs. The manual describes proc as an interface to kernel data structures rather than a disk filesystem, and tmpfs as storing its contents in virtual memory.Warning: do not use the nodev column as a permission test. It describes the filesystem's backing model, not whether your account may mount it or read a mounted instance.
The kernel list is capability information. To see active mounts, use the ordinary mount command, which changes nothing when run with no arguments:
$ mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
tmpfs on /run type tmpfs (rw,nosuid,nodev,noexec,relatime)
/dev/sda2 on / type ext4 (rw,relatime)
Source names, paths and options are host-specific. Compare the type field with /proc/filesystems. A type can be listed without being mounted anywhere. A mount can also fail even though the type is listed, because the device, options, permissions or filesystem contents are wrong.
For a narrower check, inspect the mount table for one path:
$ mount | grep ' on /proc type '
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
No output means only that this exact text pattern was not found. It does not prove the machine is unusable, since mount formatting and the chosen path may differ.
Tip: avoid parsing the complete mount output as a stable data format in new scripts unless you have accounted for spaces and escaping in paths.
ext4. The usual modern member of the extended filesystem family. It adds journaling and larger volume, file and directory limits than ext3.vfat. Extends the DOS filesystem with long filenames.iso9660. The CD-ROM filesystem type. Linux also recognises High Sierra and Rock Ridge data through that support.nfs and SMB support, plus filesystems such as XFS, JFS and Reiserfs.Several names in the manual are historical. The original ext filesystem was superseded by ext2 and removed in Linux 2.1.21. ncpfs was removed in Linux 4.17, and xiafs was removed in Linux 2.1.21. Their appearance in documentation is not evidence that a modern machine can mount them.
Availability belongs to the running kernel, not to a static reference page. The local file is the useful answer for this host.
If the type you need is absent from /proc/filesystems, stop before trying random mount options or changing a service. The manual gives two broad remedies: insert the corresponding kernel module, or use a kernel built with that filesystem support. Which module, package or kernel configuration is right depends on your distribution and host.
This is the safe diagnostic boundary:
$ grep -E '^[[:space:]]*(nodev[[:space:]]+)?TARGET_FS$' /proc/filesystems
Replace TARGET_FS with the filesystem name, without quotes. Empty output means that exact name is not currently listed.
Warning: do not treat loading an untrusted module as a harmless fix. Kernel modules run with kernel privilege. Confirm the package source and host policy before making that change, and keep a recovery path such as the previous kernel available.
If the type is listed but mounting still fails, keep the failure output. Check the source device or export, filesystem integrity, the mount point, and the options against the filesystem's own documentation. A successful lookup in /proc/filesystems only tells you the kernel currently knows the type.
Everything above only reads status. A mount command with a source and target can change the system's namespace, require elevated privileges and expose data to other processes. Do not turn a diagnostic check into a mount by pasting an incomplete command.
If a task genuinely needs a mount, verify the source, target, filesystem type and options first, then follow the host's change procedure. To undo a mount, use the documented unmount procedure for that host and confirm no process still needs the path.
Warning: never unmount a live system path such as / or /proc as an experiment.
/proc/filesystems was read successfully on the running kernel.nodev describes backing storage, not support or access permissions.