在 CentOS 中,如果分区被挂载为 只读(read-only),通常有以下几种原因和对应的解决办法。
mount | grep 你的挂载点
# 或
df -h
例如:
/dev/sdb1 on /data type ext4 (ro,relatime)
看到 ro 就说明是只读。
如果该设备没有被硬件或文件系统错误强制只读,可以直接:
mount -o remount,rw /挂载点
# 示例
mount -o remount,rw /data
如果是设备名:
mount -o remount,rw /dev/sdb1
✅ 若成功,说明只是挂载参数问题。
当文件系统出现错误时,Linux 会自动以只读方式挂载,防止数据损坏。
dmesg | tail
常见提示:
EXT4-fs error (device sdb1): ...
Remounting filesystem read-only
⚠️ 不要在挂载状态下修复
umount /data
# 若提示 busy
fuser -m /data
# 或
lsof +D /data
然后执行:
fsck -y /dev/sdb1
修复完成后重新挂载:
mount /data
如果是:
可能表现为:
dmesg | grep error
看到 I/O error,则:
smartctl -a /dev/sdb
检查:
cat /etc/fstab
如果有 ro 或 defaults,ro:
/dev/sdb1 /data ext4 ro 0 0
改为:
/dev/sdb1 /data ext4 defaults 0 0
然后:
mount -a
如果是 / 只读:
mount -o remount,rw /
如果失败,多半是文件系统损坏,需要:
fsck 根分区mount 看是否 romount -o remount,rwdmesg 看错误umount + fsck如果你愿意,可以贴出:
mount 输出dmesg | tail我可以帮你精准判断是哪一种原因。