xfs_repair [选项] 设备文件
| 选项 | 说明 |
|---|---|
| -n | 只检查而不进行修复操作(试运行) |
| -L | 强制清空日志(谨慎使用,可能导致数据丢失) |
| -f | 强制修复,即使文件系统看起来是干净的 |
| -v | 详细模式,显示更多信息 |
| -d | 修复只读挂载的文件系统(需要设备空闲) |
| -m | 在修复前执行元数据扫描 |
| -c | 设置子操作选项,如subopt=value |
| -t | 设置修复操作的超时时间(秒) |
# 首先卸载文件系统
sudo umount /dev/sdb1
# 检查文件系统状态(不执行修复)
sudo xfs_repair -n /dev/sdb1
说明:使用-n选项可以安全地检查文件系统状态,不会进行任何修改。
# 卸载文件系统
sudo umount /dev/sdb1
# 修复文件系统
sudo xfs_repair /dev/sdb1
# 修复完成后重新挂载
sudo mount /dev/sdb1 /mnt/data
# 在日志损坏无法恢复时使用
sudo umount /dev/sdb1
sudo xfs_repair -L /dev/sdb1
-L选项会强制清空日志,可能导致数据丢失。仅在确定日志损坏且其他方法无效时使用。
# 使用详细模式查看修复过程
sudo xfs_repair -v /dev/sdb1
# 修复过程中可能需要回答一些问题
sudo xfs_repair /dev/sdb1
# 典型输出和交互
Phase 1 - find and verify superblock...
Phase 2 - using internal log
- zero log...
- scan filesystem freespace and inode maps...
- found root inode chunk
Phase 3 - for each AG...
- scan and clear agi unlinked lists...
- process known inodes and perform inode discovery...
- agno = 0
- agno = 1
- agno = 2
- agno = 3
- process newly discovered inodes...
Phase 4 - check for duplicate blocks...
- setting up duplicate extent list...
- check for inodes claiming duplicate blocks...
- agno = 0
- agno = 1
- agno = 2
- agno = 3
Phase 5 - rebuild AG headers and trees...
- reset superblock...
Phase 6 - check inode connectivity...
- resetting contents of realtime bitmap and summary inodes
- traversing filesystem ...
- traversal finished ...
- moving disconnected inodes to lost+found ...
Phase 7 - verify and correct link counts...
done
dmesg | grep -i xfssudo umount /dev/sdX1sudo xfs_repair -n /dev/sdX1sudo xfs_repair /dev/sdX1sudo mount /dev/sdX1 /mntsudo xfs_repair /dev/sdX1sudo xfs_repair -f /dev/sdX1sudo mount /dev/sdX1 /mntsudo umount /dev/sdX1mount | grep /dev/sdX1sudo blkid /dev/sdX1A: 可以尝试以下步骤:
xfs_check获取更详细的错误信息-L选项清空日志(注意数据丢失风险)xfsdump和xfsrestore备份并恢复数据A: 运行xfs_repair -n进行只检查,或者使用xfs_check命令。