对Linux根文件系统的质疑

对Linux根文件系统的质疑

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

我使用“mount”命令探索了几个 Linux 发行版。有些结果中有“rootfs on / type rootfs”,而有些则没有。它们都有类似“/dev/sdaX on / type extX”的内容。

我想知道机制是否已经改变,或者对于那些没有“rootfs on / type rootfs”的用户来说,rootfs 是否只是被卸载了。

我尝试通过 wiki 和 google 寻找答案,但最终却更加困惑。

有谁能够帮助我?

答案1

mount命令从中获取有关当前安装的信息/etc/mtab

在过去mtab是每次启动后重新创建的正常文件,并且mount通过命令更新– 因此它不会有rootfs /条目,因为 rootfs从未明确安装;它始终存在。(这种mtab有时还会有重复的条目,或者不再安装的文件系统的条目……)

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

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

相关内容