Ubuntu
在 /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 候選者,直到找到合適的。它負責檢查文件系統並在呼叫 switch_root 之前以讀寫方式重新掛載它。
**額外問題:**不在 /etc/fstab 中列出 rootfs 會有什麼影響?
如果沒有,那就太棒了。我不想為每個 rootfs 維護不同的 /etc/fstab。但是為什麼 BuildRoot 和 Ubuntu 會保留它呢?
劇透:我試過了,它似乎有效,但我警惕隱藏的後果。
fstab 中的選項應該用於重新安裝它,應用指定的選項(可能不包括 rw 訪問)。在不諮詢 fstab 的情況下,硬編碼以使用 rw 重新掛載根 fs 的引導腳本已損壞。因此,將其排除在 fstab 之外的唯一結果是它不會被重新掛載,並且將保持 ro 且不應用其他選項。