/proc/filesystems:找出 Linux 内核支持的文件系统
那么,如何找出或查看 Linux 内核支持哪些文件系统?答案很简单。使用/proc/filesystems文件。它是用于检测正在运行的内核支持的文件系统的文件。您可以快速运行grep 命令或cat 命令来显示所有支持的文件系统的列表。nodev 表示文件系统与物理设备(如 /dev/sdb1)无关。如果您看到 ext3 或 vfat,则意味着您将能够挂载基于 ext3 和 vfat 的文件系统。本页使用各种命令解释了 Linux 支持的文件系统。
有关 /proc/filesystems 的更多信息
它是一个文本文件,包含 Linux 内核支持的文件系统列表。例如,此文件包括编译到内核中或当前已加载内核模块的文件系统。如果文件系统标记为“nodev”,则不需要挂载块设备。例如,虚拟文件系统、网络文件系统和其他文件系统都是“nodev”的示例。顺便说一句,当未指定文件系统且无法确定文件系统类型时,mount 命令可以使用此文件。然后,将尝试此文件中包含的文件系统,但标记为“nodev”的文件系统除外。
如何查看 Linux 支持哪些文件系统
以下命令将使用cat 命令或 less 命令或 more 命令
快速告诉您当前正在运行的 Linux 内核支持哪些文件系统$ cat /proc/filesystems
。这是我看到的:
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
例如,如果未列出 iso9660 文件系统,则无法安装标准 CD-ROM 文件系统。要添加支持,只需重新编译 Linux 内核以支持 iso9660 文件系统即可。
查找 Linux 内核模块的信息
键入以下 ls 命令来列出与文件系统相关的 Linux 内核模块:
$ ls /lib/modules/$(uname -r)/kernel/fs/*/*ko
点击放大图片
/lib/modules/5.13.0-39-generic/kernel/fs/9p/9p.ko /lib/modules/5.13.0-39-generic/kernel/fs/jffs2/jffs2.ko /lib/modules/5.13.0-39-generic/kernel/fs/nls/nls_cp775.ko /lib/modules/5.13.0-39-generic/kernel/fs/nls/nls_iso8859-9.ko /lib/modules/5.13.0-39-generic/kernel/fs/adfs/adfs.ko /lib/modules/5.13.0-39-generic/kernel/fs/jfs/jfs.ko /lib/modules/5.13.0-39-generic/kernel/fs/nls/nls_cp850.ko /lib/modules/5.13.0-39-generic/kernel/fs/nls/nls_koi8-r.ko /lib/modules/5.13.0-39-generic/kernel/fs/affs/affs.ko /lib/modules/5.13.0-39-generic/kernel/fs/lockd/lockd.ko /lib/modules/5.13.0-39-generic/kernel/fs/nls/nls_cp852.ko /lib/modules/5.13.0-39-generic/kernel/fs/nls/nls_koi8-ru.ko /lib/modules/5.13.0-39-generic/kernel/fs/afs/kafs.ko /lib/modules/5.13.0-39-generic/kernel/fs/minix/minix.ko /lib/modules/5.13.0-39-generic/kernel/fs/nls/nls_cp855.ko /lib/modules/5.13.0-39-generic/kernel/fs/nls/nls_koi8-u.ko /lib/modules/5.13.0-39-generic/kernel/fs/aufs/aufs.ko /lib/modules/5.13.0-39-generic/kernel/fs/netfs/netfs.ko /lib/modules/5.13.0-39-generic/kernel/fs/nls/nls_cp857.ko /lib/modules/5.13.0-39-generic/kernel/fs/nls/nls_utf8.ko /lib/modules/5.13.0-39-generic/kernel/fs/autofs/autofs4.ko /lib/modules/5.13.0-39-generic/kernel/fs/nfs_common/grace.ko /lib/modules/5.13.0-39-generic/kernel/fs/nls/nls_cp860.ko /lib/modules/5.13.0-39-generic/kernel/fs/ntfs/ntfs.ko /lib/modules/5.13.0-39-generic/kernel/fs/befs/befs.ko /lib/modules/5.13.0-39-generic/kernel/fs/nfs_common/nfs_acl.ko /lib/modules/5.13.0-39-generic/kernel/fs/nls/nls_cp861.ko /lib/modules/5.13.0-39-generic/kernel/fs/ocfs2/ocfs2.ko /lib/modules/5.13.0-39-generic/kernel/fs/bfs/bfs.ko /lib/modules/5.13.0-39-generic/kernel/fs/nfsd/nfsd.ko /lib/modules/5.13.0-39-generic/kernel/fs/nls/nls_cp862.ko /lib/modules/5.13.0-39-generic/kernel/fs/ocfs2/ocfs2_stackglue.ko /lib/modules/5.13.0-39-generic/kernel/fs/btrfs/btrfs.ko /lib/modules/5.13.0-39-generic/kernel/fs/nfs/nfs.ko /lib/modules/5.13.0-39-generic/kernel/fs/nls/nls_cp863.ko /lib/modules/5.13.0-39-generic/kernel/fs/ocfs2/ocfs2_stack_o2cb.ko /lib/modules/5.13.0-39-generic/kernel/fs/cachefiles/cachefiles.ko /lib/modules/5.13.0-39-generic/kernel/fs/nfs/nfsv2.ko /lib/modules/5.13.0-39-generic/kernel/fs/nls/nls_cp864.ko /lib/modules/5.13.0-39-generic/kernel/fs/ocfs2/ocfs2_stack_user.ko /lib/modules/5.13.0-39-generic/kernel/fs/ceph/ceph.ko /lib/modules/5.13.0-39-generic/kernel/fs/nfs/nfsv3.ko /lib/modules/5.13.0-39-generic/kernel/fs/nls/nls_cp865.ko /lib/modules/5.13.0-39-generic/kernel/fs/omfs/omfs.ko /lib/modules/5.13.0-39-generic/kernel/fs/cifs/cifs.ko /lib/modules/5.13.0-39-generic/kernel/fs/nfs/nfsv4.ko /lib/modules/5.13.0-39-generic/kernel/fs/nls/nls_cp866.ko /lib/modules/5.13.0-39-generic/kernel/fs/orangefs/orangefs.ko /lib/modules/5.13.0-39-generic/kernel/fs/coda/coda.ko /lib/modules/5.13.0-39-generic/kernel/fs/nilfs2/nilfs2.ko /lib/modules/5.13.0-39-generic/kernel/fs/nls/nls_cp869.ko /lib/modules/5.13.0-39-generic/kernel/fs/overlayfs/overlay.ko /lib/modules/5.13.0-39-generic/kernel/fs/cramfs/cramfs.ko /lib/modules/5.13.0-39-generic/kernel/fs/nls/mac-celtic.ko /lib/modules/5.13.0-39-generic/kernel/fs/nls/nls_cp874.ko /lib/modules/5.13.0-39-generic/kernel/fs/pstore/ramoops.ko /lib/modules/5.13.0-39-generic/kernel/fs/dlm/dlm.ko /lib/modules/5.13.0-39-generic/kernel/fs/nls/mac-centeuro.ko /lib/modules/5.13.0-39-generic/kernel/fs/nls/nls_cp932.ko /lib/modules/5.13.0-39-generic/kernel/fs/qnx4/qnx4.ko /lib/modules/5.13.0-39-generic/kernel/fs/efs/efs.ko /lib/modules/5.13.0-39-generic/kernel/fs/nls/mac-croatian.ko /lib/modules/5.13.0-39-generic/kernel/fs/nls/nls_cp936.ko /lib/modules/5.13.0-39-generic/kernel/fs/qnx6/qnx6.ko /lib/modules/5.13.0-39-generic/kernel/fs/erofs/erofs.ko /lib/modules/5.13.0-39-generic/kernel/fs/nls/mac-cyrillic.ko /lib/modules/5.13.0-39-generic/kernel/fs/nls/nls_cp949.ko /lib/modules/5.13.0-39-generic/kernel/fs/quota/quota_tree.ko /lib/modules/5.13.0-39-generic/kernel/fs/exfat/exfat.ko /lib/modules/5.13.0-39-generic/kernel/fs/nls/mac-gaelic.ko /lib/modules/5.13.0-39-generic/kernel/fs/nls/nls_cp950.ko /lib/modules/5.13.0-39-generic/kernel/fs/quota/quota_v1.ko /lib/modules/5.13.0-39-generic/kernel/fs/f2fs/f2fs.ko /lib/modules/5.13.0-39-generic/kernel/fs/nls/mac-greek.ko /lib/modules/5.13.0-39-generic/kernel/fs/nls/nls_euc-jp.ko /lib/modules/5.13.0-39-generic/kernel/fs/quota/quota_v2.ko /lib/modules/5.13.0-39-generic/kernel/fs/fat/msdos.ko /lib/modules/5.13.0-39-generic/kernel/fs/nls/mac-iceland.ko /lib/modules/5.13.0-39-generic/kernel/fs/nls/nls_iso8859-13.ko /lib/modules/5.13.0-39-generic/kernel/fs/reiserfs/reiserfs.ko /lib/modules/5.13.0-39-generic/kernel/fs/freevxfs/freevxfs.ko /lib/modules/5.13.0-39-generic/kernel/fs/nls/mac-inuit.ko /lib/modules/5.13.0-39-generic/kernel/fs/nls/nls_iso8859-14.ko /lib/modules/5.13.0-39-generic/kernel/fs/romfs/romfs.ko /lib/modules/5.13.0-39-generic/kernel/fs/fscache/fscache.ko /lib/modules/5.13.0-39-generic/kernel/fs/nls/mac-romanian.ko /lib/modules/5.13.0-39-generic/kernel/fs/nls/nls_iso8859-15.ko /lib/modules/5.13.0-39-generic/kernel/fs/sysv/sysv.ko /lib/modules/5.13.0-39-generic/kernel/fs/fuse/cuse.ko /lib/modules/5.13.0-39-generic/kernel/fs/nls/mac-roman.ko /lib/modules/5.13.0-39-generic/kernel/fs/nls/nls_iso8859-1.ko /lib/modules/5.13.0-39-generic/kernel/fs/ubifs/ubifs.ko /lib/modules/5.13.0-39-generic/kernel/fs/fuse/virtiofs.ko /lib/modules/5.13.0-39-generic/kernel/fs/nls/mac-turkish.ko /lib/modules/5.13.0-39-generic/kernel/fs/nls/nls_iso8859-2.ko /lib/modules/5.13.0-39-generic/kernel/fs/udf/udf.ko /lib/modules/5.13.0-39-generic/kernel/fs/gfs2/gfs2.ko /lib/modules/5.13.0-39-generic/kernel/fs/nls/nls_ascii.ko /lib/modules/5.13.0-39-generic/kernel/fs/nls/nls_iso8859-3.ko /lib/modules/5.13.0-39-generic/kernel/fs/ufs/ufs.ko /lib/modules/5.13.0-39-generic/kernel/fs/hfs/hfs.ko /lib/modules/5.13.0-39-generic/kernel/fs/nls/nls_cp1250.ko /lib/modules/5.13.0-39-generic/kernel/fs/nls/nls_iso8859-4.ko /lib/modules/5.13.0-39-generic/kernel/fs/vboxsf/vboxsf.ko /lib/modules/5.13.0-39-generic/kernel/fs/hfsplus/hfsplus.ko /lib/modules/5.13.0-39-generic/kernel/fs/nls/nls_cp1251.ko /lib/modules/5.13.0-39-generic/kernel/fs/nls/nls_iso8859-5.ko /lib/modules/5.13.0-39-generic/kernel/fs/xfs/xfs.ko /lib/modules/5.13.0-39-generic/kernel/fs/hpfs/hpfs.ko /lib/modules/5.13.0-39-generic/kernel/fs/nls/nls_cp1255.ko /lib/modules/5.13.0-39-generic/kernel/fs/nls/nls_iso8859-6.ko /lib/modules/5.13.0-39-generic/kernel/fs/zonefs/zonefs.ko /lib/modules/5.13.0-39-generic/kernel/fs/isofs/isofs.ko /lib/modules/5.13.0-39-generic/kernel/fs/nls/nls_cp737.ko /lib/modules/5.13.0-39-generic/kernel/fs/nls/nls_iso8859-7.ko
获取当前加载的Linux内核模块列表
在您的 Linux 机器上运行以下任一命令:
或者使用lsmod 命令和grep 命令来过滤掉文件系统,例如 zfs:
示例输出:
$ cat /proc/modules
$ lsmod
$ lsmod | grep zfs
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
请注意,lsmod是一个很棒的命令,它可以很好地格式化/proc/modules的内容,显示当前加载的内核模块。
如何加载与文件系统相关的Linux内核模块
基于 Linux 的系统附带 modprobe 命令,用于从 Linux 内核添加和删除模块。例如,要加载 zfs 模块,请运行:有关更多信息,
请参阅如何在启动时自动加载 Linux 内核驱动程序/模块。
$ sudo modprobe zfs
$ sudo modprobe -v zfs
Linux 文件系统
以下列表简要描述了 Linux 内核中可用或历史可用的文件系统:
- ext是 minix 文件系统的复杂扩展。它已被第二版扩展文件系统 (ext2) 完全取代,并已从内核中删除(在 2.1.21 中)。
- ext2是 Linux 用于固定磁盘和可移动媒体的高性能磁盘文件系统。第二个扩展文件系统被设计为扩展文件系统 (ext) 的扩展。请参阅 ext2(5)。
- ext3是 ext2 文件系统的日志版本。在 ext2 和 ext3 之间切换非常容易。请参阅 ext3(5)。
- ext4是一组对 ext3 的升级,包括显著的性能和可靠性增强,以及卷、文件和目录大小限制的大幅增加。请参阅 ext4(5)。
- hpfs是 OS/2 中使用的高性能文件系统。由于缺少可用文档,此文件系统在 Linux 下是只读的。
- iso9660是符合 ISO 9660 标准的 CD-ROM 文件系统类型。iso9660 下有两种类型:
- High Sierra– Linux 支持 High Sierra,它是 CD-ROM 文件系统 ISO 9660 标准的前身。Linux 下的 iso9660 文件系统支持会自动识别它。
- Rock Ridge– Linux 还支持 Rock Ridge 交换协议指定的系统使用共享协议记录。它们用于向 UNIX 主机进一步描述 iso9660 文件系统中的文件,并提供长文件名、UID/GID、POSIX 权限和设备等信息。它在 Linux 下的 iso9660 文件系统支持中自动识别。
- JFS是 IBM 开发的日志文件系统,在内核 2.4.24 中集成到 Linux 中。
- minix是 Minix 操作系统中使用的文件系统,是第一个在 Linux 下运行的文件系统。它有许多缺点,包括 64 MB 分区大小限制、短文件名和单个时间戳。它仍然适用于软盘和 RAM 磁盘。
- msdos是 DOS、Windows 和一些 OS/2 计算机使用的文件系统。msdos 文件名不能超过 8 个字符,后跟可选的句点和 3 个字符的扩展名。
- ncpfs是 Novell NetWare 使用的支持 NCP 协议的网络文件系统。要使用 ncpfs,您需要特殊程序,可在 ⟨ftp://linux01.gwdg.de/pub/ncpfs⟩ 找到。
- nfs是用于访问远程计算机上的磁盘的网络文件系统。
- ntfs取代了 Microsoft Window 的 FAT 文件系统 (VFAT、FAT32)。它具有可靠性、性能和空间利用率增强功能,以及 ACL、日志记录、加密等功能。
- proc是一个伪文件系统,用作内核数据结构的接口,而不是读取和解释 /dev/kmem。特别是,它的文件不占用磁盘空间。请参阅 proc(5)。
- Reiserfs是一个日志文件系统,由 Hans Reiser 设计,在内核 2.4.1 中集成到 Linux 中。
- smb是一个支持 SMB 协议的网络文件系统,由 Windows for Workgroups、Windows NT 和 Lan Manager 使用。请参阅 ⟨https://www.samba.org/samba/smbfs/⟩。
- sysv是 Linux 的 SystemV/Coherent 文件系统的实现。它实现了 Xenix FS、SystemV/386 FS 和 Coherent FS 的全部功能。
- umsdos是 Linux 使用的扩展 DOS 文件系统。它增加了 DOS 文件系统下长文件名、UID/GID、POSIX 权限和特殊文件(设备、命名管道等)的功能,同时又不牺牲与 DOS 的兼容性。
- tmpfs是一种内容驻留在虚拟内存中的文件系统。由于此类文件系统上的文件通常驻留在 RAM 中,因此文件访问速度极快。请参阅 tmpfs(5)。
- vfat是 Microsoft Windows95 和 Windows NT 使用的扩展 FAT 文件系统。vfat 增加了在 MSDOS 文件系统下使用长文件名的功能。
- XFS是一个日志文件系统,由 SGI 开发,在内核 2.4.20 中集成到 Linux 中。
- xiafs通过扩展 Minix 文件系统代码,设计和实现了一种稳定、安全的文件系统。它提供了最基本的、最需要的功能,而没有过多的复杂性。xiafs 文件系统不再积极开发或维护。它已在 2.1.21 版中从内核中删除。
结论
您学习了如何使用各种 Linux 命令行实用程序列出支持的文件系统。有关更多信息,请参阅 Linux wiki 。此外,我建议您在 Linux 工作环境中使用 help 命令或 man 命令阅读以下手册页:
$ man lsmod
$ man modinfo
$ man 5 proc
$ man 5 filesystems