文件系统损坏必须先卸载再修复,否则可能加剧损坏或导致数据覆盖;第一步强制卸载分区(如umount /dev/sdxn,lvm用完整路径),第二步按类型用对应工具只读检测(ext用fsck -n、xfs用xfs_repair -n等),第三步执行安全修复(ext用fsck -y、xfs用xfs_repair),第四步验证挂载与文件可读性后恢复业务。

文件系统损坏必须先卸载再修复,不能在挂载状态下操作,否则可能加剧损坏或导致数据覆盖。
第一步:确认损坏分区并强制卸载
进入单用户模式或紧急模式后,用 lsblk 或 df -h 查看未挂载的分区。对目标分区执行:
- umount /dev/sdXn(如提示“device is busy”,加 -l 参数强制卸载)
- 若为 LVM 逻辑卷,卸载时使用完整路径,例如:umount /dev/vg_name/lv_name
- 检查是否卸载干净:mount | grep sdXn 应无输出
第二步:按文件系统类型选择检测命令
不同文件系统需用对应工具,不可混用:
- ext2/ext3/ext4:运行 fsck -n /dev/sdXn(-n 表示只读检测,不修改)
- XFS:用 xfs_ncheck /dev/sdXn; echo $?,返回值非 0 即表示异常;也可用 xfs_check /dev/sdXn 快速校验
- ReiserFS:用 fsck.reiserfs -n /dev/sdXn
- Windows NTFS(如挂载在 Linux 上):建议用 ntfsfix /dev/sdXn,但严重损坏仍需在 Windows 下运行 chkdsk
第三步:执行针对性修复
确认损坏后,根据文件系统选择安全修复方式:
- ext 系列:直接运行 fsck -y /dev/sdXn,-y 自动确认所有修复项;若反复报错,可尝试 fsck -c /dev/sdXn 检查坏块
- XFS:运行 xfs_repair /dev/sdXn;若失败,先清空日志 xfs_repair -L /dev/sdXn(注意:-L 会丢弃未提交事务,仅在无备份且无法挂载时谨慎使用)
- ReiserFS:优先尝试 fsck.reiserfs --rebuild-tree /dev/sdXn;若元数据严重错乱,可用 reiserfsck --scan-whole-partition 扫描重建
第四步:验证与恢复业务
修复完成后不要立刻重启服务,先验证有效性:
- 重新挂载:mount /dev/sdXn /mnt/test
- 快速抽查关键目录和文件:ls -la /mnt/test/var/log、head /mnt/test/etc/fstab
- 若能正常读取,再执行 mount -o remount,rw /mnt/test 并迁移回原挂载点
- 业务恢复前,建议先做一次快照或镜像备份,防止修复引入新问题











