如何识别挂载指定分区所使用的文件系统内核模块
如何识别挂载指定分区所使用的文件系统内核模块
别发愁,我给你整理了几种实用的方法,帮你找出挂载/dev/sdc1到/media/ABCD-EFGH时用到的内核模块:
方法一:用findmnt快速定位文件系统类型,再找对应模块
这是最直接的步骤:
- 先确定分区的文件系统类型
运行下面的命令,它会直接返回/dev/sdc1对应的文件系统类型(比如vfat或msdos):findmnt -n -o FSTYPE /dev/sdc1 - 根据文件系统类型找内核模块
- 如果要查看模块的详细信息和路径,用
modinfo命令,比如返回的是vfat,就运行:
输出里的modinfo vfatfilename:字段就是模块文件的完整路径,比如/lib/modules/5.15.0-78-generic/kernel/fs/fat/vfat.ko。 - 也可以直接查看已加载的模块列表,搜索对应的类型:
这会显示模块是否已加载,以及模块名称。grep -i vfat /proc/modules
- 如果要查看模块的详细信息和路径,用
方法二:通过mount命令获取信息
运行下面的命令,过滤出/dev/sdc1的挂载信息:
mount | grep /dev/sdc1
输出内容类似这样:
/dev/sdc1 on /media/ABCD-EFGH type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)
这里的type后面的vfat就是文件系统类型,接着用方法一里的modinfo或/proc/modules找对应模块即可。
方法三:检查内核是否内置了该模块
如果用modinfo提示“module XXX not found”,说明这个文件系统模块是直接编译进内核的(不是单独的.ko文件)。这时候可以查看内核配置文件确认:
grep CONFIG_VFAT_FS /boot/config-$(uname -r)
- 如果输出是
CONFIG_VFAT_FS=y,表示模块已内置到内核; - 如果是
CONFIG_VFAT_FS=m,则表示是单独的.ko模块。
备注:内容来源于stack exchange,提问作者Schilive
相关产品推荐
相关产品推荐

