在 CentOS 里遇到 mount 成只读(read-only) 的情况,一般不是“权限不够”,而是 文件系统有风险被内核强制 readonly,或者挂载参数写错了。下面按最常见场景一步步排查和“破”。
mount | grep 你的挂载点
例如:
mount | grep /data
如果看到:
/dev/sdb1 on /data type ext4 (ro,relatime)
说明是 ro(read-only)
也可以试写文件:
touch /data/test && echo ok
报错 Read-only file system 就确认了。
内核发现 ext4/xfs 有异常,会直接只读保护。
先卸载
umount /data
如果提示 busy:
fuser -mv /data
kill 对应进程
检查文件系统
fsck -y /dev/sdb1
xfs_repair /dev/sdb1
重新挂载
mount /data
或指定读写:
mount -o rw /dev/sdb1 /data
检查 /etc/fstab:
cat /etc/fstab
如果有:
/dev/sdb1 /data ext4 ro 0 0
改成:
/dev/sdb1 /data ext4 defaults 0 0
然后:
mount -o remount,rw /data
有些情况:
检查:
dmesg | tail -50
常见关键字:
EXT4-fs error
I/O error
write protected
如果 / 都是只读:
mount -o remount,rw /
不行就进 单用户 / rescue 模式 做 fsck。
只为了立刻能写:
mount -o remount,rw /挂载点
⚠️ 如果底层有错误,这样可能丢数据。
如果你愿意,可以把下面信息贴出来,我直接帮你判断是哪种:
mount | grep 挂载点
dmesg | tail -30
cat /etc/fstab