温馨提示×

为什么linux mount只读

小樊
48
2026-10-02 09:37:50
栏目: 智能运维

在 Linux 中,**mount 成只读(read-only)**通常有以下几种常见原因,从最常见到较少见依次说明:


1️⃣ 挂载时显式指定了只读

最常见的人为原因:

mount -o ro /dev/sdb1 /mnt

或 /etc/fstab 中写了:

/dev/sdb1 /mnt ext4 ro 0 0

✅ 解决:

mount -o remount,rw /mnt

或修改 fstab 把 ro 改成 rw


2️⃣ 文件系统存在错误,内核自动设为只读(非常重要)

当文件系统检测到不一致(如断电、强制拔盘、I/O 错误):

  • ext4:errors=remount-ro
  • 内核会 自动 remount 为只读,防止进一步损坏

查看方式:

dmesg | tail

常见信息:

EXT4-fs error (device sdb1): ...
Remounting filesystem read-only

✅ 解决:

umount /mnt
fsck -y /dev/sdb1
mount /mnt

3️⃣ 底层设备本身是只读的

例如:

  • CD/DVD(iso9660)
  • 写保护的 SD 卡 / U 盘(物理开关)
  • 虚拟机磁盘设为 readonly
  • iSCSI / NFS 服务端只读导出

✅ 解决:

  • 检查物理写保护
  • 检查 NFS 导出权限
  • 检查 hypervisor 磁盘配置

4️⃣ NFS 挂载为只读

NFS 服务端可能导出为:

/export  *(ro,sync)

客户端即使写 rw 也会被服务端拒绝。

✅ 检查:

mount | grep nfs
cat /proc/mounts | grep nfs

5️⃣ 磁盘 / 存储介质出现硬件错误

SMART 报错、坏块、USB 不稳定时:

  • 内核可能直接强制只读

✅ 检查:

smartctl -a /dev/sdb
dmesg | grep error

6️⃣ 使用了 overlay / union / 容器环境

例如:

  • Docker 只读容器
  • overlayfs lowerdir 只读
  • mount --bind 到只读目录

7️⃣ 安全策略限制

  • SELinux / AppArmor
  • 只读 rootfs(嵌入式系统、Live CD)

快速排查清单 ✅

mount | grep 你的挂载点
dmesg | tail
cat /proc/mounts | grep 你的设备

如果你愿意,可以告诉我:

  • 是什么设备(硬盘 / U 盘 / NFS / 容器)
  • 文件系统类型(ext4 / xfs / ntfs)
  • mount 和 dmesg 的输出

我可以帮你精准判断是哪一种原因。

0 踩