在内核文档文件中“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_root
或systemd
来执行此操作。这两者都遵循相同的操作顺序,如链接的内核文档。隐藏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
[...]