Linux默认文件系统:Linux文件系统检测(linux filesystem)

我试图遵循this book来了解一下 Linux 内核的工作原理。

我真的不能把我的头是,我不明白 Linux 如何检测文件系统类型,有一个 gazillion 文件系统在 Linux 中支持每个其特殊性。

任何人都可以指出我在内核中的一段代码,应该区分让我们说 fat 和 ext4?

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

当发出mount /dev/whatever /media时,没有必要添加文件系统类型。

18

找不到它的原因是因为,在大多数情况下,它不在内核中-它在util-linux包中的 userspacemount实用程序中。如果您不给它一个文件系统类型,或者如果您给它一个“any”类型,则mount只返回一个内核尝试的所有文件系统的列表,直到内核知道它们的顺序为止。

它如何找出内核知道的文件系统类型是什么?它读取/proc/filesystems文件,该文件遍历fs/filesystems.c中的file_systems链表。当加载文件系统驱动程序时,它会调用同一文件中的register_filesystem函数将其自身添加到该列表中。例如,在中调用

当有人尝试使用错误的文件系统挂载设备时,某些文件系统会产生噪音并将错误打印到内核调试日志中,这就是为什么,例如,如果mount首先尝试 xfs,那么当成功挂载 ext4 文件系统时,您可能会看到有关“无效的 XFS 文件系统”的错误。

6
blkid-o value-s TYPE /dev/path/to/device
5

mount手册页:

如果没有给出-t 选项,或者如果指定了自动类型,mount 将尝试猜测所需的类型。如果 mount 是用 blkid 库编译的,则猜测是由这个库完成的。否则,mount 通过探测超级块来猜测自己;如果没有发现任何熟悉的东西,mount 将尝试读取文件 / etc / filesystems,或者,如果不存在,/ proc / filesystems。

此外,我的 ubuntu 框有这是安装手册页(提到volume_id库)

如果没有给出-t 选项,或者如果指定了自动类型,则 mount 将尝试猜测所需的类型。Mount 使用 blkid 或 volume_id 库来猜测文件系统类型;如果没有出现任何熟悉的内容,则 mount 将尝试读取文件 / etc / filesystems,或者,如果不存在,则 / proc / filesystems 将尝试在其中列出的所有文件系统类型。

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(434)
Linux双网卡路由设置:如何使用“路由打印”的输出来设置特定的网卡参数
上一篇
Bio digital:iTunesApi将获得BIO
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(83条)