关于Linux根文件系统的疑惑

13 linux

在我的理解中,术语“根文件系统”是模棱两可的,它实际上是指两个不同的东西。一种是与内核一起完成系统设置所需的绝对最小文件系统。它包含一些早期的用户空间程序,用于执行硬件检测、模块加载、设备发现等。该文件系统通常称为“rootfs”。另一个是“真正的”根文件系统。它可能位于本地磁盘或远程服务器上(对于支持从以太网引导的系统)。

我已经使用“mount”命令探索了几个 Linux 发行版。有些在结果中有 'rootfs on / type rootfs',而另一些则没有。他们都有类似'/dev/sdaX on / type extX'的东西。

我想知道机制是否已经改变,或者 rootfs 只是为那些没有“rootfs on / type rootfs”的人卸载了。

我试图通过 wiki 和 google 寻求答案,但最终更加困惑。

有谁能够帮助我?

use*_*686 16

mount命令从/etc/mtab.

在过去mtab是在每次启动后重新创建并由mount命令更新的普通文件- 因此它不会有rootfs /条目,因为 rootfs从未显式安装;它只是一直存在。(这种mtab有时也有重复的条目,或不再挂载的文件系统的条目......)

许多当前的发行版现在符号链接mtab/proc/self/mounts,它(与 /proc 中的其他所有内容一样)是由内核直接生成的。因此,它始终显示当前安装的所有内容,包括rootfs //dev/blah /

您可以cat /proc/self/mounts在所有发行版上使用来比较安装。(还有/proc/self/mountinfo,它使用不兼容的语法但添加了更多细节。)