在 Linux 中,执行 mount 后文件系统以只读(read-only,ro)方式挂载,通常由以下几类原因造成。下面按常见程度和排查思路说明。
当 ext4 / xfs / btrfs 等文件系统检测到严重错误时,内核会主动将其切换为只读,防止数据损坏。
检查方式:
dmesg | tail
常见日志:
EXT4-fs error (device sdb1): ...
Remounting filesystem read-only
解决:
umount /dev/sdb1
fsck -y /dev/sdb1
mount /dev/sdb1 /mnt
romount -o ro /dev/sdb1 /mnt
/etc/fstab 中写了 ro/dev/sdb1 /mnt ext4 ro 0 0
解决:
mount -o remount,rw /mnt
或修改 fstab 中的 ro → rw
/dev/sr0 on /mnt type iso9660 (ro)
检查:
cat /proc/cmdline
lsblk -o NAME,RO
blockdev --getro /dev/sdb1
返回 1 表示只读。
可能原因:
当根文件系统(/)挂载失败时,系统可能:
mount: / is read-only
原因:
解决:
/etc/fstabDocker、Kubernetes 中:
overlay on /var/lib/docker/overlay2 ... (ro)
这是预期行为。
# 查看挂载选项
mount | grep 你的挂载点
# 查看内核日志
dmesg | tail -n 50
# 查看是否设备只读
lsblk -o NAME,RO,MOUNTPOINT
# 尝试重新挂载
mount -o remount,rw /mnt
Linux 挂载为只读,绝大多数情况是“文件系统出错后的自我保护”或“配置/设备本身只读”。
如果你愿意,可以把:
mount 输出dmesg 相关报错/etc/fstab贴出来,我可以帮你精确定位是哪一类原因。