VPS突然无法写入配置、日志或数据库,终端可能出现 Read-only file system,内核日志则可能包含 remount-ro、I/O error 或文件系统校验错误。只读挂载通常是保护动作:系统发现底层存储或文件系统不一致后,宁愿停止写入,也不继续扩大损坏范围。此时直接执行 mount -o remount,rw 并不是通用修复。
先确认是挂载属性还是权限问题
findmnt -no TARGET,SOURCE,FSTYPE,OPTIONS /
mount | grep ' on / '
touch /path/to/known-writable/test-file
如果挂载选项包含 ro,且任何普通文件都无法写入,优先按存储故障处理;如果只有某个目录失败,则继续检查目录权限、ACL、配额和应用沙箱。不要把“当前用户没有写权限”误判成文件系统只读。
从内核日志确认触发原因
dmesg -T | egrep -i 'I/O error|remount|ext4|xfs|btrfs|nvme|blk_update'
journalctl -k -b --no-pager | tail -n 200
重点记录首次出现时间、设备名称、文件系统类型以及是否伴随超时、重试或校验错误。若日志只显示一次应用报错而没有块设备或文件系统信息,仍需检查云平台监控和虚拟磁盘事件;VPS内部通常无法直接读取物理磁盘的SMART数据。
先保全数据,再决定在线还是离线修复
在数据仍可读时,优先导出关键配置、数据库一致性备份和最近日志,并按云平台能力创建快照。记录实例、磁盘、挂载点和故障时间,避免反复重启导致证据丢失。根文件系统无法正常卸载时,文件系统检查通常应在云厂商救援系统、独立维护环境或离线挂载下进行。
修复工具必须与文件系统匹配:ext4常见为离线 fsck,XFS通常使用 xfs_repair。具体命令、设备路径和是否需要先卸载,应以发行版与云厂商文档为准;不要在仍被业务写入的根分区上盲目执行修复。
云盘健康状态也要纳入判断
如果内核持续报告超时、设备重置或I/O错误,即使文件系统检查暂时通过,也不能立即认为故障结束。查看云平台磁盘健康、事件记录、突发性能额度和同一可用区的故障通知;必要时向服务商提交实例ID、设备名、时间线和脱敏日志。不要在文章、工单或命令回显中暴露密钥、Token和业务数据。
修复后的验收顺序
- 确认挂载选项恢复为
rw,并且没有新的内核I/O错误。 - 用服务账号在真实业务目录创建、写入、关闭并删除测试文件。
- 检查数据库、队列、日志服务和容器卷是否能正常启动。
- 观察一段时间的内核日志、磁盘延迟和云平台事件,确认没有再次变成只读。
- 把快照、备份和故障时间线归档,便于判断是否需要迁移到新磁盘。
不要把保护动作当成配置问题
只读文件系统可能由介质故障、虚拟化层异常、文件系统元数据损坏或内核检测到一致性错误触发。临时改成读写只能改变表面状态,不能恢复底层可靠性。真正的处理目标是保全数据、确认根因、在正确的维护环境完成修复,并用业务写入和持续观察完成验收。






