为什么rootfs会被多次挂载?

为什么rootfs会被多次挂载?

在这里您可以看到两个设备已作为 root 挂载:

$ df
Filesystem                                             1K-blocks      Used Available Use% Mounted on
rootfs                                                  29221788  18995764   8761244  69% /
udev                                                       10240         0     10240   0% /dev
tmpfs                                                     203260      2192    201068   2% /run
/dev/disk/by-uuid/1d8879f2-9c47-4a72-9ef4-a6ecdd7a8735  29221788  18995764   8761244  69% /
tmpfs                                                       5120         0      5120   0% /run/lock
tmpfs                                                     406516       376    406140   1% /tmp
tmpfs                                                     406516        72    406444   1% /run/shm
/dev/sda2                                               29225884  15019636  12741264  55% /home
/dev/sda3                                              226881528 191247596  24275680  89% /opt
...

但是,我没有在 /etc/fstab 中指定 UUID:

proc            /proc           proc    defaults        0       0
LABEL=debian    /               ext4    errors=remount-ro 0       1
LABEL=istore    /mnt/istore ext4    defaults    0   0
LABEL=home  /home           ext4    defaults        0       2
...

我想在“/dev/xxx”而不是“/dev/disk/by-uuid/...”中查看安装信息。虽然通过UUID挂载有很多优点,但我更喜欢旧的风格......也很奇怪为什么有两个rootfs挂载?

答案1

这是 debian initramfs 运行方式的副作用。最初,内核为根目录创建一个 tmpfs,并在那里解压 initramfs,这是一个压缩的 cpio 存档。 initramfs 中的程序和脚本挂载真正的根设备,然后就chroot在那里。只需忽略将文件系统列为 rootfs 的第一个条目,因为这只是 initramfs。另一种才是真正的根文件系统。

由于 /etc/fstab 位于您的根文件系统中,因此无法参考它来挂载您的根文件系统,因此这是通过引导加载程序传递的内核命令行参数来完成的。如果您使用 grub,它默认使用 UUID 以避免驱动器恰好以不同顺序枚举时出现问题。您可以进行编辑/etc/default/grub来更改此行为,但这不是一个好主意。

相关内容