linux系统支持的文件系统应查/proc/filesystems,它列出内核编译支持或可加载的所有类型,如ext4、xfs、vfat等;带nodev前缀为伪文件系统,无前缀才对应真实块设备;模块未加载时需用modprobe启用,modinfo可验证模块存在性。

Linux 系统支持哪些文件系统,不能只看 df -T 或 lsblk -f 的输出——它们只反映已挂载或已格式化的设备,不等于内核能识别或加载的类型。真正要查“系统支持什么”,得看内核编译配置和模块加载能力。
查内核原生支持的文件系统(含未加载模块)
内核在启动时就决定了哪些文件系统能被识别,哪怕没加载模块也能列出来。/proc/filesystems 是最权威的来源,它包含所有编译进内核或可动态加载的类型。
- 运行
cat /proc/filesystems,输出中每行第二列就是文件系统名,如ext4、xfs、vfat - 带
nodev前缀的是伪文件系统(如proc、sysfs),不依赖块设备;没这个前缀的才是你插硬盘能用的真实类型 - 想过滤掉伪文件系统,直接用:
awk '$1 != "nodev" {print $2}' /proc/filesystems - 注意:某些发行版(如 Alpine)可能把部分文件系统编译为模块而非内置,此时该类型仍会出现在
/proc/filesystems中,但需modprobe才能用
查当前已加载的文件系统模块
内核支持 ≠ 当前可用。模块没加载,mount -t ntfs 就会报 unknown filesystem type 'ntfs'。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 用
lsmod | grep -E '^(ext|ntfs|xfs|btrfs|f2fs|vfat)'查已加载的模块 - 重点看
Used by列:值为 0 表示模块空闲加载了;非 0 表示正被某个挂载点使用 - 如果某类型没出现(比如
ntfs3),可尝试sudo modprobe ntfs3,再检查是否成功;失败则说明内核没提供该模块 -
modinfo ntfs3能确认模块是否存在、支持哪些参数,比盲目modprobe更可靠
查具体设备实际使用的文件系统类型
这个操作不回答“系统支持什么”,但能反向验证:如果 file -s 能识别出 ext4,至少说明内核有对应解析逻辑;若报错或输出模糊,可能是驱动缺失或格式太新(如旧内核无法识别带 casefold 特性的 ext4)。
- 对未挂载设备(如
/dev/sdb1)运行:sudo file -s /dev/sdb1 - 输出含
ext4 filesystem data或ISO 9660等字样才算识别成功 - 别用
fdisk -l判断文件系统类型——它只读分区表里的 type 字段(如 0x83),不校验实际格式,误报率高 - 如果
file -s输出data或cannot open,优先检查设备权限、是否被占用,再考虑内核支持问题
查已挂载文件系统的运行时类型
这是最“落地”的视角:不管内核多全,最终只有挂上才能用。这里看到的,才是此刻真实生效的类型集合。
-
findmnt -D最干净,强制显示FSTYPE字段,连tmpfs、devtmpfs这类内存文件系统都包括 -
mount | awk '{print $5}' | sort -u更轻量,但会漏掉无显式type字段的挂载(如某些 bind mount) -
df -T看的是挂载点所属的文件系统类型,但对符号链接目录或 overlayfs 等分层结构可能显示底层类型而非用户感知类型 - 注意:
df -T对未挂载的设备完全无输出,新手常误以为“没显示=不支持”,其实只是没挂
真正容易被忽略的是内核版本与文件系统特性的匹配关系——比如 ext4 在 5.4+ 内核才默认启用 casefold,老内核即使能挂载也会跳过该特性;又比如 btrfs 的某些子命令(如 balance)需要模块加载时传特定参数。查支持类型只是第一步,用不用得上,还得看具体版本和配置。










