Linux

如何在 Red Hat / Fedora Core 中掛載 root aufs?

  • December 16, 2009

我正在嘗試設置一個執行 Red Hat EL(實際上是 Scientific Linux,但相同的區別)的虛擬機,其中根文件系統受到保護且不可寫。我想通過使用aufs的聯合安裝來完成此操作。也就是說,可寫文件系統(在不同的虛擬 HDD 上)覆蓋在根文件系統上。

在任何地方都有關於此的 HOWTO 嗎?我安裝了 aufs 模組,並且已經能夠安裝聯合文件系統,但訣竅是為根文件系統執行此操作。

我已經看到為 Debian/Ubuntu 風格的發行版編寫的 initramfs 腳本 help.ubuntu.com/community/aufsRootFileSystemOnUsbFlash 在 /init 腳本中執行此類操作:在掛載真正的根之前,受保護的根被掛載為已讀的某處-only,覆蓋文件系統以讀寫方式掛載到別處,創建並掛載聯合文件系統,然後聯合掛載成為真正的根。因此,原始受保護的根文件系統永遠不會以讀寫方式安裝。

我想知道如何在 Red Hat 發行版的 nash /init 腳本中執行此操作。

更具體的問題: nash 命令“setuproot”和“switchroot”究竟做了什麼?nash(8) 的手冊頁使用單個參數記錄 switchroot,但我的 /init 腳本呼叫它時不帶任何參數。

(動機:虛擬機將受到軟體故障注入;我想保護根文件系統免受故障系統的影響,以便我可以快速重啟虛擬機進入非故障狀態。)

謝謝!!

PS 是的,我可以下載一些 LiveCD 看看它是如何在那裡完成的,但我認為應該有人寫了一個我的Google搜尋技能還沒有發現的 HOWTO。

initrd 包含一個 gzip 壓縮的 cpio 轉儲,該轉儲在 init 期間放入 ramdisk。Setuproot 載入任何必要的模組(包含在 initrd 中),通常用於 LVM 之類的東西,填充 /dev(initrd 包含有限的 /dev)。Switchroot 將 cpio 存檔轉為真正的根文件系統。

納什非常有限。每個二進製文件都必須是靜態的,幾乎不可能編寫腳本等。 可能會有所幫助(建構腳本在他的 SVN 儲存庫中)。

引用自:https://serverfault.com/questions/93215