为什么 Linux 只读 remount 失败,只能重启?
文件系统只读有两种:卷只读和 Linux 只读。卷只读是存储侧控制,能恢复;Linux 只读是存储 IO 错误触发的保护机制,remount 基本失败,只能重启。 现象 虚拟机文件系统变成只读: root@host:~# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT vda 253:0 0 20G 0 disk └─vda1 253:1 0 20G 0 part / vdb 253:16 0 4G 0 disk [SWAP] vdc 253:32 0 100G 0 disk root@host:~# touch test touch: cannot touch 'test': Read-only file system 同事说另一个类型的虚拟机只读了能恢复,这个怎么恢复。 排查 先要分清是"卷只读"还是"Linux 只读",两者恢复方式完全不同。 再确认存储是否中断过,因为 Linux 只读通常由存储 IO 错误触发。 根因 同事那个能恢复,是因为不是 Linux 只读,而是卷只读。那个卷是我们公司自己的存储,能控制其读写权限。 但这里 Linux 只读,一般是存储读写有 IO error,触发了 Linux 保护机制,系统只读。 我问他是不是存储中断过,他说是的。 这种 Linux 只读没法恢复,remount 基本失败,只能重启虚拟机。 小结 Linux 文件系统只读,通常是存储 IO 错误触发的保护机制; 卷只读(存储侧控制)可以恢复,Linux 只读(IO 错误触发)基本无法 remount 恢复; 排查时先确认是"卷只读"还是"Linux 只读",两者恢复方式完全不同; Linux 只读只能重启虚拟机恢复。