tl;dr
cat /proc/filesystems
will show you which filesystems your running kernel can support right now.
ls /lib/modules/$(uname -r)/kernel/fs
will provide clues as to which additional filesystems it could support, if you loaded the appropriate module.
Explanation
The question has already been answered, but all of the other answers are in some way incomplete, misleading, untrue, or at least not true any more.
From man 8 mount
(emphasis mine):
-t, --types fstype
The argument following the -t is used to indicate the filesystem type. The filesystem types which are currently supported depend on the running kernel. See /proc/filesystems and /lib/modules/$(uname -r)/kernel/fs for a complete list of the filesystems. The most common are ext2, ext3, ext4, xfs, btrfs, vfat, sysfs, proc, nfs and cifs.
I therefore can't fault anyone suggesting these approaches. However, as others have pointed out, the /lib/modules/$(uname -r)/kernel/fs
directory contains filesystem-related kernel modules, which is not the same thing as currently supported filesystems:
- If the module is not loaded, the filesystem will not be supported currently.
- If support is built-in to the kernel, the filesystem will be supported but won't show up in the list of modules.
- Module names are not guaranteed to map 1:1 to the filesystems they support.
The list can therefore contain additions, deletions and/or substitutions. It's not very reliable. It's possible to have a so-called "monolithic kernel" which has everything built-in already - in that (admittedly unusual) case the module list will be completely empty but the kernel will still support an arbitrary number of things - including, of course, various filesystems.
On the other hand, this is the contents of my /proc/filesystems
file:
nodev sysfs
nodev tmpfs
nodev bdev
nodev proc
nodev cgroup
nodev cgroup2
nodev cpuset
nodev devtmpfs
nodev binfmt_misc
nodev configfs
nodev debugfs
nodev tracefs
nodev securityfs
nodev sockfs
nodev bpf
nodev pipefs
nodev ramfs
nodev hugetlbfs
nodev rpc_pipefs
nodev devpts
ext3
ext4
ext2
cramfs
squashfs
vfat
msdos
exfat
iso9660
nodev nfs
nodev nfs4
nodev nfsd
nodev cifs
nodev smb3
ntfs3
nodev autofs
fuseblk
nodev fuse
nodev fusectl
udf
f2fs
nodev efivarfs
nodev mqueue
nodev resctrl
btrfs
nodev pstore
There are filesystems in that list that my system has never even seen, let alone has currently mounted.
So on my system at least, that's the answer. I can't speak to why the currently accepted answer leads with the opposite conclusion; perhaps this is a new development...
cat /proc/filesystems
as pointed out in the kernel documentation. There may be modules, available on your hard drive, which support other additional filesystems, but that are not loaded into your running kernel. Those can be found in/lib/modules/$(uname -r)/kernel/fs
. – Totor Nov 13 '21 at 23:25