我有一个嵌入式 Linux 环境,上面有一个只读根文件系统。我无法按预期在只读根文件系统中编辑文件并创建新目录。
但是,我发现我仍然可以更改文件的内容,/etc/resolv.conf
这怎么可能?这实际上对我有用。但我只是想知道为什么我能够编辑它?
编辑1:我什至可以创建一个写入/sys/class/pwm/$module_name/export
编辑2:所以我看到
resolv.conf -> /etc/resolv-conf.systemd
和
resolv-conf.systemd -> ../run/systemd/resolve/resolv.conf
答案1
但是,我发现我仍然可以更改文件 /etc/resolv.conf 的内容,这怎么可能?
/run
它要么是指向安装在或中的 tmpfs 文件系统的符号链接,/var
要么是您正在使用虚拟COW文件系统比如 UnionFS/aufs/overlayfs/等等。
答案2
您可能正在运行绑定安装。如果运行 RHEL/Fedora,您使用的软件包可以对和readonly-root
中的任何目录/文件执行绑定挂载。默认情况下,包含在./etc/rwtab
/etc/rwtab.d
/etc/resolv.conf
/etc/rwtab
您可以通过运行来检查此行为mount | grep resolv
,它应该输出类似的内容
none on /etc/resolv.conf type tmpfs (rw,relatime,seclabel,inode64)
您还可以有一个分区来保存应保留的数据、查看/etc/statetab
和/etc/statetab.d
文件夹。