温馨提示×

linux mount为何只读挂载

小樊
43
2026-09-20 15:33:19
栏目: 智能运维

在 Linux 中,分区或设备被只读(read-only)挂载,通常由以下几类原因导致。你可以按这个思路逐一排查。


一、文件系统层面原因(最常见)

1. 文件系统存在错误

Linux 在挂载时如果发现文件系统不一致(如 ext4 有错误),会自动以只读方式挂载,防止数据损坏。

典型现象:

  • dmesg 中有类似:
    EXT4-fs error (device sda1): ...
    remounting filesystem read-only
    

解决:

# 查看错误
dmesg | tail

# 卸载后检查(不要在挂载时做)
umount /dev/sda1
fsck -y /dev/sda1

# 重新挂载
mount /dev/sda1 /mnt

2. 文件系统类型本身或选项限制

某些文件系统默认就是只读的,例如:

  • ISO9660(光盘)
  • squashfs
  • 某些 FAT 在写保护时

二、挂载参数问题

3. 显式指定了 ro

mount -o ro /dev/sda1 /mnt

或 /etc/fstab 中:

/dev/sda1 /mnt ext4 ro 0 0

解决:

mount -o remount,rw /mnt

或修改 /etc/fstab 中的 ro 为 rw


三、设备/硬件原因

4. 存储设备写保护

  • SD 卡有写保护开关
  • U 盘/SSD 进入“只读模式”(寿命耗尽或控制器故障)
  • 云盘/网络存储限制

判断方法:

lsblk -o NAME,RO

如果 RO=1,说明设备被标记为只读。


5. 块设备被设置为只读

blockdev --getro /dev/sda1

返回 1 表示只读。

临时解除(仅当硬件允许):

blockdev --setrw /dev/sda1

四、运行时系统保护

6. 系统进入紧急/维护模式

系统崩溃或根分区异常时,会整体只读挂载根文件系统。


7. 安全机制

  • SELinux / AppArmor 限制
  • 容器或快照卷(如 LVM snapshot 默认只读)

五、快速排查清单

# 1. 当前挂载状态
mount | grep sda1

# 2. 是否只读
findmnt -o TARGET,OPTIONS /mnt

# 3. 设备是否只读
lsblk -o NAME,RO

# 4. 内核日志
dmesg | tail

如果你愿意,可以贴出:

  • mount 输出
  • dmesg | tail
  • /etc/fstab

我可以帮你精确定位是哪一种原因。

0 踩