HCRM博客

CentOS服务器断电故障后,xfs_repair成功恢复数据案例

CentOS服务器断电后自检不过,xfs_repair拯救数据记录

机房里啪一声黑,UPS也没撑住,整台CentOS直接硬掉。再上电,系统卡在启动自检,提示“XFS (dm-0): log mount failed”,紧接着进入紧急模式,业务全停。别急着重装,数据还在盘里,只是文件系统头被摔瘸了,xfs_repair能拉一把。

CentOS服务器断电故障后,xfs_repair成功恢复数据案例-图1

先别慌,确认盘还能认

重启进BIOS,看阵列卡有没有掉盘。若RAID状态显示“Optimal”,硬盘灯常绿,说明物理层没事,问题落在文件系统层。记下出错分区,比如/dev/mapper/centos-root,后面所有操作都围着它转。

挂LiveCD,把盘设为只读

找同版本CentOS镜像,刻U盘启到救援模式。启动后别手贱直接挂载,先lsblk确认逻辑卷,再vgchange -ay激活卷组。此时切记:受损XFS只能以只读检测,任何写入都会让日志回放失败更严重。

第一步:xfs_repair -n 先探伤

执行

CentOS服务器断电故障后,xfs_repair成功恢复数据案例-图2

xfs_repair -n /dev/mapper/centos-root

参数-n表示“dry run”,只检查不写盘。屏幕刷刷列出“would fix inode 128”之类,说明还有救;若直接报“I/O error”,盘可能真坏,得先做dd镜像再折腾。

第二步:清日志,强行归零

探伤通过,再跑

xfs_repair -L /dev/mapper/centos-root

-L会把日志段清零,等同于告诉文件系统“之前的事全翻篇”。这一步会丢最近几分钟写入,但能把盘挂起来。执行完若看到“done”无error,基本成功一半。

CentOS服务器断电故障后,xfs_repair成功恢复数据案例-图3

第三步:正式修复,生成新根

去掉-L,直接

xfs_repair /dev/mapper/centos-root

过程分三段:扫描inode、重建btree、验证配额。十分钟级别,SSD会快些。若中途出现“rebuilding directory”,别Ctrl-C,那是把散落的inode重新挂回目录树。

重启验证,业务拉起来

修复完退出Live环境,拔掉U盘,让服务器从硬盘启。系统应正常进入图形或multi-user.target。立刻journalctl -xb | grep -i xfs,确认没有“error”字样。再跑一遍xfsdb -r /dev/mapper/centos-root -c 'sb 0' -c 'p'看超级块状态,若“sbmagic”=0x58465342,说明XFS头已复活。

事后补锅:写个断电保护

1. 给UPS配snmp,断电五分钟后自动发脚本关机

2. 在/etc/fstab里对关键分区加

/dev/mapper/centos-root / xfs defaults,logbufs=8,logbsize=256k 0 0

增大日志缓存,减少掉电损坏概率

3. 每周跑

xfs_admin -u /dev/mapper/centos-root

生成UUID快照,配合rsync做异地备份,下次再摔也不心跳骤停

常见作死现场,别踩

· 直接fsck.ext4往XFS上怼,结果超级块直接被盖

· 看到“repair”就反复跑,日志被反复清零,文件碎片化成渣

· 没做dd镜像就在原盘练手,一旦失手连数据恢复公司都叹气

一句话流程图

LiveCD → lsblk → -n检查 → -L清日志 → 无参数修复 → 重启 → 验日志 → 上监控。七步走完,系统复活,数据保住,老板省下一笔重装+恢复的费用,你也省得通宵写检讨。

这次断电惊魂,再次证明:在Linux世界,手边常备一张CentOS镜像,比任何心灵鸡汤都管用。xfs_repair不是万能,却是XFS文件系统掉链子时最靠谱的那根拐杖。记住流程,下回停电,你也能把自检不过的机器原地救活。

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/41784.html

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
请登录后评论...
游客游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~