由于安全问题,我们需要一个只读 rootfs(无法更改闪存中的 FS)。其他可写分区可以与只读 rootfs 一起使用(例如用于日志)。
就简单性而言,我们宁愿使用 rootfs 只读方式,而不是overlayfs
.然而,我担心某些进程可能会尝试写入 rootfs,然后会失败。
我们的系统非常小,只有一两个进程。 (但也包含selinux
和auditd
)。
在Linux系统中是否总是可以将rootfs用作只读文件,或者在这种情况下是否需要使用overlayfs?
答案1
绝对有可能拥有只读根文件系统。这在服务器类型或工作站类型的安装上很不方便且不常见,但在嵌入式系统上很常见。只读根文件系统有一些限制,主要是:
- 您无法在其上升级任何内容或添加任何软件(其他文件系统除外,例如
/usr/local
在单独的分区上)。如果您通过替换整个闪存中的文件系统映像来进行升级,则这不是问题。 您无法重新配置 中的任何内容
/etc
。这意味着任何配置都必须以不同的方式完成;典型的解决方案包括:- 通过其他目录中的文件(然后您需要以不同的方式配置应用程序);
- 通过符号链接到另一个目录;
- 动态地,例如通过从 NVRAM 读取配置变量的脚本。
典型的受影响数据包括网络配置、时区、用户身份验证信息等。
- 如果将相同的文件系统映像部署到多台计算机,则需要将所有特定于计算机的数据安排在文件系统映像之外。这包括主机名、SSH 服务器密钥等。
- 您通常需要 下的一些持久可写文件
/var
,例如 下的日志/var/log
和随机种子文件(除非您有硬件 RNG,否则需要)。