Linux 还使用 rootfs 吗?

Linux 还使用 rootfs 吗?

在内核文档文件中“ramfs、rootfs 和 initramfs“ 它说

Rootfs 是 ramfs(或 tmpfs,如果启用的话)的一个特殊实例,它始终存在于 2.6 系统中。

我还没有rootfs/proc/mounts我的 Linux 桌面安装中看到它,但我在我的 Android 手机上看到了它。两者都运行Linux 3。rootfs还有必要吗?也是什么啊?

答案1

rootfs 没有显示在 /proc/mounts 中 - 那么这是否意味着文档已过时?没看到为什么我的系统上没有 rootfs 文件系统?

从 Linux v4.17 开始,此内核文档仍然是最新的。 rootfs 始终存在;它无法被卸载。但很多时候你在/proc/mounts 中看不到它。

如果启动到 initramfs shell,您可以看到 rootfs。如果您的 initramfs 是dracut,如 Fedora Linux 中那样,您可以通过将该选项添加rd.break到内核命令行来完成此操作。 (例如 GRUB 引导加载程序内部):

switch_root:/# grep rootfs /proc/mounts
rootfs / rootfs rw 0 0

当 dracut 将系统切换到真正的根文件系统时,您将无法再在 /proc/mounts 中看到 rootfs。 dracut 可以使用 switch_rootsystemd来执行此操作。这两者都遵循相同的操作顺序,如链接的内核文档。隐藏rootfs的操作是chroot

switch_root:/# cd /sysroot
switch_root:/sysroot# mount --bind /proc proc
switch_root:/sysroot# grep rootfs proc/mounts
rootfs / rootfs rw 0 0

switch_root:/sysroot# chroot .
sh-4.4# cat proc/mounts
/dev/sda3 / ext4 ro,relatime 0 0
proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0

[...]

相关内容