在我看来,“根文件系统”这个术语含义模糊,它实际上指两种不同的东西。一个是与内核一起完成系统设置所需的绝对最小文件系统。它包含一些执行硬件检测、模块加载、设备发现等的早期用户空间程序。这个文件系统通常被称为“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
,它使用不兼容的语法,但添加了更多细节。)