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

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
nodev	ecryptfs
nodev	fuse
nodev	fusectl
nodev	efivarfs
nodev	mqueue
nodev	pstore
nodev	autofs
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 | 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.


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

🐧 Get the latest tutorials on Linux, Open Source & DevOps via RSS feed or Weekly email newsletter.

🐧 8 comments so far... add one
CategoryList of Unix and Linux commands
Disk space analyzersncdu pydf
File Managementcat
FirewallAlpine Awall CentOS 8 OpenSUSE RHEL 8 Ubuntu 16.04 Ubuntu 18.04 Ubuntu 20.04
Network UtilitiesNetHogs dig host ip nmap
OpenVPNCentOS 7 CentOS 8 Debian 10 Debian 8/9 Ubuntu 18.04 Ubuntu 20.04
Package Managerapk apt
Processes Managementbg chroot cron disown fg jobs killall kill pidof pstree pwdx time
Searchinggrep whereis which
User Informationgroups id lastcomm last lid/libuser-lid logname members users whoami who w
WireGuard VPNAlpine CentOS 8 Debian 10 Firewall Ubuntu 20.04
8 comments… add one
  • Arla Sep 6, 2010 @ 17:19

    What does “nodev” in the beginning of a line mean?

  • shandr Dec 8, 2011 @ 14:27

    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

    • ken Dec 15, 2011 @ 1:25

      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

  • Ra Apr 24, 2012 @ 8:18

    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.

  • laxman Nov 17, 2012 @ 10:25

    How to troubleshoot apache log errors??? can u please explain step by step process in linux ??/

  • gacanepa Aug 22, 2013 @ 13:12

    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

    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)

  • gacanepa Aug 22, 2013 @ 13:14

    Sorry, I forgot to include the path to my kernel’s configuration file. Here it is:

  • Modules Oct 14, 2013 @ 18:42

    I got a list of loadable filesystems this way:

    ls /lib/modules/$(uname -r)/kernel/fs/*/*ko

Leave a Reply

Your email address will not be published.

Use HTML <pre>...</pre> for code samples. Still have questions? Post it on our forum