问题分析思路
在 Linux 服务器使用过程中,可能会出现文件系统只读的情况,该类问题的一般分析思路如下:检查 /etc/fstab 配置,查看是否对磁盘进行了挂载。
检查当前实际挂载的磁盘状态是否正确。
对于 Ubuntu 或者 Debian 系统,检查磁盘挂载参数 barrier 的设置情况。
通过 fsck 等工具检查文件系统状态。
检查当前实际挂载的磁盘状态是否正确
通过如下命令查看当前系统磁盘挂载的情况cat /proc/mounts
在 Ubuntu 或者 Debian 系统下检查 barrier 的设置情况
注:只读的情况例如执行命令touch 1.txt系统报错read only
1、输入命令 more /ets/fstab
如果是如下状态的
这个需要将只读磁盘那一行的 default 替换成 barrier=0
2、将磁盘卸载,重新挂载:
例如:上述截图中的例子,操作方法:sed -n '/xvdb1/p' /etc/fstab | sed 's/defaults/barrier=0/g'
然后输入umount /www
mount -a
检查 /etc/fstab 内容是否正确
检查 /etc/fstab 内容是否正确,是否正确挂载系统磁盘。
检查磁盘状态是否正常
可以通过 fsck 等手段,磁盘状态是否正常。
创建文件报错 Read-only file system
问题现象
服务器内创建文件时报错:Read-only file system
问题原因
该问题一般都是相应的目录下或者是父目录没有权限所致,但是查看并没有发现问题。mount 查看挂载情况发现 mtab 文件报错没有权限,是只读的状态。
处理办法
分析过程:
1、使用 fsck 命令进行修复下文件系统发现文件系统没有任何错误。
2、 查看发现 fstab 文件中挂载出现错误,导致文件系统没有挂载,只是进行挂载数据盘,导致的这个错误。
如果是存在fstab的备份文件的话,直接覆盖修复即可。如果没有这个文件,建议直接回滚之前正确时间点的系统盘快照,修复这个 fstab 的文件。