热衷于分享各种干货知识,大家有想看或者想学的可以评论区留言,秉承着“开源知识来源于互联网,回归于互联网”的理念,分享一些日常工作中能用到或者比较重要的内容,希望大家能够喜欢,不足之处请大家多提宝贵地意见,我们一起提升,守住自己的饭碗。
正文开始
一、背景
今天下午突然接收到一台linux服务器宕机告警的短信,已经影响到了业务,赶紧去机房查看,看到是sdb1硬盘故障了,无法正常进入系统。

二、解决方案
1、检查文件系统
先确保umount
xfs_check dev/sda; echo $?
返回0表示正常,返回1即为异常。
2、XFS文件系统默认会创建多个备用超级块(secondary superblock)。运行以下命令让xfs_repair自动搜索并修复:
xfs_repair dev/sda (ext系列工具为fsck)
流程解析:
Phase 1:工具会扫描并验证备用超级块的有效性,找到后将其替换为主超级块。
Phase 2~7:修复元数据、重建日志、检查数据一致性等。
3、强制清除日志(若自动修复失败)
xfs_repair -L dev/sda(清空日志,会丢失文件)
-L选项会破坏未提交的日志,可能导致数据丢失。
执行后需再次运行不带-L的xfs_repair完成最终修复
xfs_repair dev/sda
检查文件系统是否修复成功
xfs_check dev/sda
说明:-L是修复xfs文件系统的最后手段,慎重选择,它会清空日志,会丢失用户数据和文件。
注意:在执行xfs_repair操作前,最好使用xfs_metadump工具保存元数据,一旦修复失败,最起码可以恢复到修复之前的状态。
xfs_metadata -o dev/sda1 beifen
三、复盘
导致故障的问题可能有几个:
1、超级块损坏。XFS文件系统的超级块记录了文件系统的关键信息(如块大小、日志位置等)。若主超级块(primary superblock)的“magic number”(标识符)异常,可能由以下原因导致:
硬件故障(如磁盘坏道)
意外断电或系统崩溃
2、手动覆盖超级块(如误用dd命令)
四、其他
常见的磁盘格式的对比
五、总结
优先方案:使用xfs_repair自动修复,依赖备用超级块恢复(成功率较高)。
应急方案:使用-L清除日志后修复,但需评估数据丢失风险。
长期建议:定期备份关键数据,避免依赖单一修复工具。若硬件故障导致反复损坏,建议更换磁盘。
ext4相对于xfs,稳定性还是好一点的,但ext4对单个文件的大小有限制,最大只支持16T,这个大家在使用过程中要注意。
文中的概念来源于互联网,如有侵权,请联系我删除。
欢迎关注公众号:小周的数据库进阶之路,一起交流数据库、中间件和云计算等技术。如果觉得读完本文有收获,可以转发给其他朋友,大家一起学习进步!感兴趣的朋友可以加我微信,拉您进群与业界的大佬们一起交流学习。




