linux文件系统提示:"read-only file system"
read-only file system 通常不是单纯的权限问题,而是 内核把文件系统挂载为只读(ro) 了。
常见原因
磁盘/文件系统错误
比如 ext4 的 journal 出错,系统会保护性地 remount 为只读。
查看
dmesg/journalctl -xe常能看到类似:EXT4-fs error (device sda1): ext4_journal_check_start:56: Detected aborted journal Remounting filesystem read-only
硬件故障
- 磁盘坏块、SATA/RAID 控制器异常。
- USB/SD 卡损坏(嵌入式系统常见)。
手动挂载参数
- 在
/etc/fstab或者mount命令里用了ro。
- 在
容器或特殊场景
- Docker/K8s 挂载了只读卷。
- LiveCD 启动镜像,本身就是只读。
解决思路
1. 临时恢复写入
找到设备:
1
mount | grep ' ro,'
尝试重新挂载为
rw:1
2mount -o remount,rw /
mount -o remount,rw /data⚠️ 如果是文件系统损坏导致的,只是临时恢复,重启后还是会只读。
2. 检查/修复文件系统
先进入单用户模式或者救援模式,卸载分区:
1
umount /dev/sda1
运行 fsck:
1
fsck -y /dev/sda1
修复完成后重新挂载。
3. 确认硬件状态
查看 SMART 信息:
1
smartctl -a /dev/sda
检查 RAID 卡 / 存储日志,有没有坏盘。
4. 检查系统配置
看
/etc/fstab是否写了ro:UUID=xxxx-xxxx / ext4 defaults,rw 0 1确认挂载点不是
read-only的卷(比如 ConfigMap、K8s secret)。
5. 特殊场景
- 容器内:确认是不是宿主机挂载了只读卷,可以在
docker run或k8s yaml里去掉:ro。 - 嵌入式 Linux:有的系统设计就是只读 rootfs,需要用 overlayfs/aufs 提供写层。
总结
临时解决:
mount -o remount,rw /根本解决:
- 跑
fsck修复文件系统 - 检查磁盘 SMART、硬件状态
- 调整
/etc/fstab或容器挂载参数
- 跑