首页/系统/服务器硬件与 RAID 速查/文件系统只读重挂载的处理
硬盘故障与更换68 条

文件系统只读重挂载的处理

阵列掉盘或 IO 错误后,ext4/XFS 可能把文件系统切到只读以保护数据;此时业务写入失败,处置重点是保护现场与确认冗余状态,而不是立刻 remount rw。

文件系统为什么变只读

阵列掉盘或出现 IO 错误后,ext4、XFS 这类文件系统可能主动把挂载点切成只读,用这种方式保护剩余数据不再被写入破坏。此时业务侧的典型表现是写入失败、报错提示只读文件系统。处置的重点不是立刻重新挂成读写,而是先保护现场、确认底层阵列的冗余状态。

基本信息

触发原因底层 IO 错误、阵列降级或盘掉线
典型表现写入失败、应用报只读文件系统
处置重点先确认底层阵列与冗余状态,再决定是否恢复写入
恢复前提底层问题解决且数据有备份或快照
权限要求root

处置顺序

  • 先确认底层阵列状态,用卡工具或 mdstat 看冗余是否还在
  • 确认冗余处在哪种状态:降级但可用,还是已经失效
  • 评估业务能否容忍短暂中断,安排数据保护动作
  • 恢复写入之前先补齐备份并修复底层问题
  • 记录全过程的时间线与操作,便于事后复盘

确认状态与日志

确认状态与日志
dmesg -T | grep -i -E "remount|read-only|I/O error" | tail -30   # 内核侧错误与重挂记录
mount | grep -i " ro,"                                          # 列出只读挂载点
cat /proc/mdstat                                                # 软阵列的冗余状态
tune2fs -l /dev/md0 | grep -i "filesystem state"                # ext 系列的文件系统状态
storcli /c0/vall show | grep -iE "State|Degraded"                # 硬件 RAID 的阵列状态

现象与处置

现象含义处置方向
文件系统只读内核主动保护先查底层 IO 错误来源
阵列降级但可用仍能读,风险升高尽快换盘重建并备份
阵列失效数据不可访问保护现场,寻求数据恢复支持
错误日志持续增加故障仍在扩散停止写入,避免扩大损坏面
底层问题没解决就强制挂回读写:坏块上的写操作会把损失扩散到更多数据。
只读状态也可能由链路问题触发,而不只是盘体故障:把内核日志里 IO 错误的时间点和阵列事件日志对齐,能更快定位到出问题的设备。

易错点

  • 把只读当成应用层问题:根因通常在底层存储错误,重启应用解决不了
  • 直接重新挂成读写:失去保护意义,可能让数据损坏范围扩大
  • 只处理文件系统不做备份:真正需要恢复时手里没有可用的数据副本
  • 不记录阵列状态就动手:后续无法判断故障发生在哪一层,复盘只能猜

数据来源与参考

  • Linux 内核文档(ext4 错误行为)
  • man 8 mount
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌