/proc/filesystems: Find out what filesystems supported by Linux kernel

last updated in Categories File system, Linux

So, How do you find out or see which filesystems are supported by the Linux kernel? The answer is simple. Use /proc/filesystems file. It is the file used to detect filesystems supported by running kernel. You can quickly run grep command or cat command to display the list of all supported file system. nodev indicates that the file system is not associated with a physical device such as /dev/sdb1. If you see ext3 or vfat, it means you will be able to mount ext3 and vfat based file systems. This page explains filesystems supported by Linux using various commands.

How to see which filesystems are supported by the Linux

Following cat command will quickly tell you what filesystems supported by currently running Linux kernel:
$ cat /proc/filesystems
Sample outputs:

nodev	sysfs
nodev	tmpfs
nodev	bdev
nodev	proc
nodev	cgroup
nodev	cgroup2
nodev	cpuset
nodev	devtmpfs
nodev	configfs
nodev	debugfs
nodev	tracefs
nodev	securityfs
nodev	sockfs
nodev	bpf
nodev	pipefs
nodev	ramfs
nodev	hugetlbfs
nodev	devpts
	ext3
	ext2
	ext4
	squashfs
	vfat
nodev	ecryptfs
	fuseblk
nodev	fuse
nodev	fusectl
nodev	efivarfs
nodev	mqueue
nodev	pstore
	btrfs
nodev	autofs
	xfs
	jfs
	msdos
	ntfs
	minix
	hfs
	hfsplus
	qnx4
	ufs
nodev	zfs
nodev	binfmt_misc

For example, if the iso9660 fllesystem not listed, you can not mount standard CD-ROM file system. To add support simply recompile Linux kernel with iso9660 filesystem support.

Finding out Linux kernel modules

Type the following ls command to list the Linux kernel modules related to filesystem:
ls /lib/modules/$(uname -r)/kernel/fs/*/*ko

Filesystems supported by Linux using ls command
Click to enlarge image

Get a list of currently loaded Linux kernel modules

Run any one of the following command:
cat /proc/modules
OR use the lsmod command along with grep command to filter out filesystems such as zfs:
lsmod
lsmod | grep zfs

Sample outputs:

zfs                  3604480  10
zunicode              331776  1 zfs
zavl                   16384  1 zfs
icp                   286720  1 zfs
zlua                  147456  1 zfs
zcommon                86016  1 zfs
znvpair                81920  2 zfs,zcommon
spl                   122880  5 zfs,icp,znvpair,zcommon,zavl

Please note that the lsmod is an awesome command which nicely formats the contents of the /proc/modules, showing what kernel modules are currently loaded.

How to load Linux kernel modules related to filesystem

Linux based systems comes with the modprobe command, to add and remove modules from the Linux Kernel. To load zfs module, run:
sudo modprobe zfs
sudo modprobe -v zfs

See “how to load Linux kernel driver/modules automatically boot time” for more information.

Conclusion

You learned how to use various Linux command line utilities to list supported filesystems. See Linux wiki for more information here.

Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin, DevOps engineer, and a trainer for the Linux operating system/Unix shell scripting. Get the latest tutorials on SysAdmin, Linux/Unix and open source topics via RSS/XML feed or weekly email newsletter.

Start the discussion at www.nixcraft.com

Historical Comment Archive

8 comment

  1. It’s not always true. For example you will not see nfs and nfs4 in /proc/filesystems after reboot. But still you can mount remote nfs directory if needed packages are installed in the system. After successful mounting nfs and nfs4 will appear in /proc/filesystem. Tested on Ubuntu 11.10

    1. same for vfat.

      i can still mount vfat usb drive even vfat not found in /proc/filesystems.But after mounting, it appears in /proc/filesystems too! Tested on kernel 2.4.35.4

  2. The “nodev” string in the first column means that filesystem does not require a block device to be mounted, it’s so called virtual filesystem.

  3. Just adding my 2 cents here. The only way to be sure about what filesystems are supported by the kernel or not is to check its configuration file. In my case, it is
    and look for the filesystem type.
    I searched for ISO9660 (for example) and found the following:

    # CD-ROM/DVD Filesystems
    #
    CONFIG_ISO9660_FS=m
    CONFIG_JOLIET=y
    CONFIG_ZISOFS=y
    CONFIG_UDF_FS=m
    CONFIG_UDF_NLS=y

    The “m” means it was compiled as a module but not automatically inserted into the kernel.
    In order to load it into the kernel, we must run the following command:
    modprobe -a isofs
    (where isofs is the alias of the corresponding module)
    And then iso9660 will show up in the /proc/filesystems file.

    (on a side note, the aliases for modules can be found in /lib/modules, then look for the directory of your kernel, and read the file modules.alias)

  4. Sorry, I forgot to include the path to my kernel’s configuration file. Here it is:
    /boot/config-3.2.0-4-686-pae

    Have a question? Post it on our forum!