Linux文件系统检测

位置:

我试图按照这本书来对Linux内核的工作原理有一些了解。

我无法真正确定的是,我不了解Linux如何检测文件系统类型,Linux中支持大量的文件系统,每个文件系统都有其特殊性。

谁能指出我在内核中应该区分例如fat和ext4的一段代码?

MBR不包含此类信息,并且每种类型的超级块都不同。

发出时,mount /dev/whatever /media无需添加文件系统类型。

滚刀:

您找不到它的原因是,在大多数情况下,它不在内核中-在mount程序util-linux中的userspace 实用程序中。如果您不给它一个文件系统类型,或者给它一个“ any”类型,那么mount只需遍历内核知道的所有文件系统列表,然后依次尝试每个文件系统,直到其中一个成功安装为止(或者如果没有一个返回错误)。

如何找到内核知道的文件系统类型?它将读取/proc/filesystems文件,该文件将在中移动file_systems链表fs/filesystems.c加载文件系统驱动程序后,它将调用register_filesystem同一文件将其自身添加到该列表中。例如,有一个register_filesystemin init_ext2_fsin 调用fs/ext2/super.cinit_ext2_fs是ext2模块的module-init函数。

某些文件系统嘈杂,当有人尝试使用错误的文件系统挂载设备时,会在内核调试日志中显示错误,这就是为什么(例如)成功挂载ext4文件系统时,您可能会看到有关“无效XFS文件系统”的错误的mount原因首先尝试xfs。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章