一、说明现象原因
1、问题现象,创建文件或者创建目录都只读
touch:cannot touch ‘file.test’ : read-only file system
2、问题说明
当文件系统自身的校验机制发现文件系统存在问题时,为避免文件系统受到进一步的损坏,系统会把文件系统设置为只读。
造成原因:
一般情况是由于系统发现磁盘硬件(Riad卡,硬盘)故障或文件系统中文件被损坏后而采取的保护机制导致的。
为了保护数据不破坏分区中已有内容,Linux在挂载文件系统时会以read-only只读方式加载。
具体问题可能导致:文件系统错误磁盘坏道RAID卡故障inode资源耗尽IO繁忙硬盘背板故障硬盘线缆故障HBA卡故障内核相关硬件驱动bugFW固件类问题另:系统没有正常关机,也会导致磁盘出现文件系统错误;
二、排查思路
先重启一下(一般重启都能好,好不了就看下面的)
①、cat /proc/mounts 确认是哪个分区只读(ro状态的)dmesg |grep error 看报错信息,是I/O错误,还是文件系统错误cat /var/log/messages 看是否有错误信息②、mount -o remount rw 挂载点尝试重新挂载一下,如果不行,往下③、df -T 查看文件系统版本是ext2/3/4,使用对应的命令:fsck.ext2/3/4 -y 设备名 (修复文件系统,取消交互)fsck.ext2/3/4 -n 设备名 (扫描文件系统,不执行操作)
注:fsck扫描文件系统时一定要在单用户模式、修复模式或把设备umount后进行,不然可能会导致文件损坏、丢失。扫描正常运行中的系统,会造成系统文件损坏。