Root
rootfs 只讀 vs overlayfs
由於安全問題,我們需要一個只讀的 rootfs(不能更改快閃記憶體中的 FS)。其他可寫分區可以與只讀 rootfs 一起使用(例如用於日誌)。
就簡單性而言,我們寧願使用 rootfs 只讀方式,而不是
overlayfs
. 然而,我擔心某些程序可能會嘗試寫入 rootfs,然後會失敗。我們的系統非常小而且極小,它只有一兩個程序。(但也包含
selinux
和auditd
)。在 Linux 系統中是否總是可以將 rootfs 用作只讀,或者在這種情況下是否需要使用 overlayfs?
絕對有可能擁有一個只讀的根文件系統。這在伺服器類型或工作站類型的安裝中不方便且不常見,但在嵌入式系統上很常見。只讀根文件系統有一些限制,主要是:
你不能在上面升級任何東西或添加任何軟體(除了在其他文件系統上,例如
/usr/local
在一個單獨的分區上)。如果您通過替換整個快閃記憶體中的文件系統映像進行升級,這不是問題。您無法重新配置
/etc
. 這意味著任何配置都必須以不同的方式完成;典型的解決方案包括:
- 通過其他目錄中的文件(然後您需要以不同方式配置應用程序);
- 通過符號連結到另一個目錄;
- 動態地,例如通過從 NVRAM 讀取配置變數的腳本。典型的受影響數據包括網路配置、時區、使用者認證資訊等。
如果將相同的文件系統映像部署到多台機器上,則需要將所有特定於機器的數據安排在文件系統映像之外。這包括主機名、SSH 伺服器密鑰等。
您通常需要一些持久性可寫文件
/var
,例如日誌/var/log
和隨機種子文件(除非您有硬體 RNG,否則需要)。