CentOS 文件系统故障排查与修复
一 快速定位与初步判断
journalctl -xb | grep -iE "filesystem|fsck|mount|EXT4-fs|I/O error" 查看本次启动的详细日志;必要时查看 dmesg | tail -n 200 获取内核环形缓冲的最新信息。df -hT、mount | column -t、lsblk -f;若根分区或关键分区显示为 ro(只读),多为异常关机或一致性检查失败后的保护状态。lsblk、blkid、fdisk -l;确认 /dev/sdX 与 /dev/sdX1 对应关系、文件系统类型(如 ext4/xfs)与 /etc/fstab 一致。二 常见故障场景与处置
journalctl -xb。umount /dev/sdXn(若提示忙,先结束占用进程或重启到救援/单用户环境再卸载)。fsck -y /dev/sdXn(ext 系列);如为 XFS,通常使用 xfs_repair(见下文差异)。mount /dev/sdXn /mount_point,再重启验证。fsck -y /dev/sda1(设备名以实际为准)。/etc/fstab 条目错误导致挂载失败,可在救援环境中先注释异常条目,启动后再恢复。fsck -yM /dev/sdX1),必要时先注释 /etc/fstab 中异常条目后回挂原实例启动,再恢复条目。mount -t ext4 /dev/sdb1 /mnt;确认设备与挂载点存在、类型匹配。/etc/fstab 字段(设备/UUID、挂载点、类型、选项、dump、pass),修正后执行 mount -a 验证。dmesg | grep mount、grep -i mount /var/log/messages;排除重复挂载、选项冲突与远程服务不可达等问题。三 关键命令与差异要点
journalctl -xb、dmesg | taillsblk -f、blkid、fdisk -ldf -hT、mount | column -tfsck -y /dev/sdXn(ext2/3/4);xfs_repair /dev/sdXn(XFS,通常需先卸载)smartctl -a /dev/sdatouch /forcefsck,下次启动将强制执行 fsck(完成后删除该文件)fsck;异常关机后易触发恢复与只读保护。xfs_repair 修复,且多数场景要求分区未挂载;若日志损坏,可能需要先清理日志再修复(请先备份)。fsck/xfs_repair,以免造成进一步损坏。四 数据保护与恢复建议
dd if=/dev/sdXn of=/backup/sdXn.img 或压缩备份;必要时先对可疑分区做只读检查:fsck -n /dev/sdXn。smartctl -a /dev/sda 查看 SMART 信息;必要时迁移数据并更换磁盘。debugfs(ext 系列)进行只读检查与有限的人工干预,但操作需谨慎并由有经验人员执行。