温馨提示×

CentOS文件系统故障怎么修复

小樊
40
2025-11-21 18:42:04
栏目: 智能运维

CentOS 文件系统故障修复步骤

一、先判定故障与风险

  • 识别症状:出现 Read-only file system、写入报错、命令报 I/O error、系统无法正常启动等。
  • 立即止损:优先对还能访问的重要数据进行远程备份,例如:rsync -av /data/ root@192.168.1.100:/data/backup/
  • 初步排查:
    • 查看挂载与类型:df -T;定位设备:blkid
    • 查看内核与系统日志:journalctl -n 100,关注文件系统、I/O、硬件相关报错。
    • 检查磁盘健康:smartctl -a /dev/sda,关注 Reallocated_Sector_Ct、Pending_Sector 等关键项。
  • 重要原则:对文件系统进行修复时应尽量卸载;根文件系统无法卸载时,进入救援模式/单用户模式操作;修复存在数据丢失风险,务必先备份。

二、快速恢复读写

  • 尝试重新挂载为读写:mount -o remount,rw /。若成功,可临时恢复业务,但建议尽快完整修复并排查根因。
  • 若仍只读,极可能是文件系统检测到错误而触发只读保护策略。ext 系列可通过 tune2fs 查看/调整错误行为(如 remount-ro 表示出错时自动重挂载为只读),必要时在修复完成后改回更稳妥的策略。

三、按文件系统类型执行修复

  • ext2/ext3/ext4
    • 非根分区:先卸载,例如 umount /dev/sda3,再执行 fsck.ext4 -y /dev/sda3 修复。
    • 根分区或无法卸载:进入救援模式(见下一节),执行 chroot /mnt/sysimage 后修复对应分区。
    • 也可用通用 fsck -y /dev/sdaX 或批量检查 fsck -AR -y(注意仅对未挂载分区安全)。
  • XFS
    • 原则:检查/修复需卸载后执行。
    • 检查:xfs_ncheck /dev/sdb1; echo $?(返回 0 表示正常)。
    • 修复:xfs_repair /dev/sdb1;若元数据严重损坏,可尝试 xfs_repair -L /dev/sdb1(会清空日志,谨慎使用)。
    • 根分区:进入救援模式后 chroot /mnt/sysimage 再执行修复。

四、无法进入系统时的救援模式

  • 引导方式:从 CentOS 安装介质启动,进入 Troubleshooting → Rescue a CentOS system
  • 挂载选项:选择 Continue(将已安装系统挂载到 /mnt/sysimage,通常为读写),进入 shell 后执行 chroot /mnt/sysimage
  • 修复操作:按第三部分方法对异常分区执行修复;完成后 exitreboot 重启。

五、修复后验证与根因预防

  • 验证:重启后检查是否恢复正常写入,确认 df -T 挂载为 rw;复核日志 journalctl -b 是否还有文件系统错误;再次查看 SMART 健康状态。
  • 预防与加固:
    • 调整 ext 文件系统错误策略为更稳妥选项(如避免直接 panic),必要时用 tune2fs -e 调整。
    • 安排定期一致性检查或在维护窗口执行 fsck -A -y;如需下次启动强制检查,可 touch /forcefsck,完成后删除该文件。
    • 排查硬件隐患:关注 smartctl 告警,必要时做坏道检测 badblocks -sv /dev/sda;同时核查 RAID/HBA/线缆/背板等硬件状态。

0