在只读文件系统上更新 `/etc/resolv.conf`

Kot*_*tte 5 networking filesystems busybox

我目前有一个基于 busybox 的嵌入式 linux 系统。文件系统是一个只读安装的 jffs2 文件系统。我遇到的一个问题是/etc/resolv.confDHCP 无法更新。

是否可以使用与 不同的文件/etc/resolv.conf,例如/tmp/resolv.conf(/tmp挂载为 tmpfs)。

还是我在将 JFFS2 安装为只读时过于偏执?根文件系统是只读的,因为我不想磨损闪存。

gol*_*cks 8

你可以使用符号链接,我只是试过这个来确定。由于 /tmp 中的内容是无常的,这意味着您必须在 dhcpcd 运行之前在启动时创建该文件。

touch /tmp/dhcpcd.resolv.conf
ln -s /tmp/dhcpcd.resolv.conf /etc/resolv.conf
Run Code Online (Sandbox Code Playgroud)

我通过说明的方式包含了 ln 位,但请注意,您不必每次在启动时都创建符号链接;只需将您的 RO 系统放入一次,并且(再次)确保在任何尝试访问它之前创建它链接到的 /tmp 文件。

符号链接与它们链接的文件共享它们的权限,即使它们所在的文件系统是 RO,只要它们链接的文件不是 RO,就可以写入。