现象
或者日志中有 Cannot make directory:file:xxxxxxxx的信息
当单独创建文件的时候报错
mkdir:cannot make directory xxx:read-only file system
问题原因
一般是由于一下两类问题导致:
- 文件系统数据块出现不一致导致
- 由于未正确关机或突然掉电导致磁盘故障
文件系统有很强的自我修复机制。当遇到致命错误时,文件系统为了保持数据一致性和安全,会暂时屏蔽掉写操作,变为只读的文件系统。才出现了read-only file system的报错
解决办法
通过fsck手工修复文件系统。
1、在操作前,最好卸载文件系统所在的磁盘分区
[root@iZzm446eh1ux98Z ~]# umount /dev/vdb1 umount: /: target is busy. (In some cases useful info about processes that use the device is found by lsof(8) or fuser(1))
无法卸载原因是有进程正在使用文件系统。
2、检查正在使用相关分区的进程
[root@iZzm446eh1ux98Z ~]# fuser -m /dev/vdb1 /dev/vdb1 8000
3、使用ps命令检查8000端口的进程
略
4、停掉相关进程后修复文件系统
[root@iZzm446eh1ux98Z ~]# fsck -V -a /dev/vdb1
修复的时间根据磁盘大小和文件系统损坏程度而定。当有些数据块无法修复时,会提示是否删除,根据情况进行选择。被删除的数据块保留在该磁盘分区挂载点的lost+found目录中。
5、修复完成后重新挂载即可