![当文件系统表示已启用读写时,“写入文件时出错,只读文件系统”](https://linux22.com/image/200586/%E5%BD%93%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E8%A1%A8%E7%A4%BA%E5%B7%B2%E5%90%AF%E7%94%A8%E8%AF%BB%E5%86%99%E6%97%B6%EF%BC%8C%E2%80%9C%E5%86%99%E5%85%A5%E6%96%87%E4%BB%B6%E6%97%B6%E5%87%BA%E9%94%99%EF%BC%8C%E5%8F%AA%E8%AF%BB%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E2%80%9D.png)
我目前正在尝试更新嵌入式 Linux 设备上的网络设置。这通常是通过修改文件 /opt/etc/network/interfaces 的内容来完成的。 /opt/挂载的文件系统默认是RO,但是我们在使用命令更新文件内容时暂时将其更改为RW
mount -o remount,rw /opt
通过查看/proc/mounts的内容确认文件系统已经更新为RW
我相信文件系统现在是可读写的,因为我看到了 RW 字母。
但是,当我去修改该文件时,出现只读错误。
这让我很困惑。文件系统是按 /proc/mounts 读写的,但是,我仍然收到文件系统错误。我不是文件系统专家,但我对正在发生的事情有三种理论:
- 存储设备启用了某种内存锁(即开关)。
- 该文件实际上位于嵌套文件系统中,因此它实际上并不托管在 /opt 上
- 我是一个假人,缺少一些明显的东西。
答案1
您的问题中没有任何内容证明该文件/opt/etc/network/interfaces
实际上位于/opt
文件系统上。该路径上的目录之一可能是安装点。或者,更有可能的是,/opt/etc/network/interfaces
它本身或其中一个目录/opt/etc
,或者/opt/etc/network
实际上是一个目标位于另一个文件系统上的符号链接。
要查看/opt/etc/network/interfaces
实际使用的文件系统,请运行
df /opt/etc/network/interfaces
如果/opt/etc/network/interfaces
本身是符号链接,则报告符号链接的位置。检查与ls -l /opt/etc/network/interfaces
.
Linux提供了方便的实用程序namei
查看路径中涉及的所有符号链接。
namei /opt/etc/network/interfaces