在 /etc/fstab 中列出 rootfs 的目的是什么?

在 /etc/fstab 中列出 rootfs 的目的是什么?

在 BuildRoot 2015.08.1 中 /etc/fstab 包含以下行。

/dev/root / ext2 rw,noauto 0 1

在我的加密 Ubuntu 笔记本电脑上,/etc/fstab 包含以下行。

/dev/mapper/ubuntu--vg-root / ext4 errors=remount-ro 0 1

问题:在 /etc/fstab 中列出 rootfs 的目的是什么?

不是答案:

  • 内核从 root= 参数或 initramfs 中以只读方式挂载 rootfs。所以 /etc/fstab 不能帮助以只读方式挂载 rootfs。

  • init进程重新挂载rootfs读写。这是在 BuildRoot 中的 /etc/inittab 和 Ubuntu 中的 /etc/rcS.d/S06checkroot.sh 中完成的。所以/etc/fstab并不能帮助重新挂载rootfs读写。

背景:我正在构建一个带有精美 initramfs 的嵌入式系统。它会在网络和本地寻找不同的 rootfs 候选者,直到找到合适的 rootfs。它负责检查文件系统并在调用 switch_root 之前将其重新挂载为可读写。

奖金问题:不在 /etc/fstab 中列出 rootfs 会产生什么影响?

如果没有的话那就太棒了。我不想为每个 rootfs 维护不同的 /etc/fstab。但是为什么 BuildRoot 和 Ubuntu 会保留它呢?

剧透:我尝试过,似乎有效,但我对隐藏的后果持谨慎态度。

答案1

fstab 中的选项应该用于重新安装它,应用指定的选项(可能不包括 rw 访问)。硬编码为在不咨询 fstab 的情况下使用 rw 重新挂载 root fs 的引导脚本已损坏。因此,将其排除在 fstab 之外的唯一结果是它不会被重新安装,并且将保持 ro 状态,不应用其他选项。

相关内容