Centos7异常断电宕机无法启动修复记

由于断电异常宕机,一台Centos7系统的Dell R720服务器无法启动,本文记录修复过程,最后使用 SystemRescueCd 救援系统完成修复。

一、故障现象

系统启动卡在 mount /sysroot
fault1
判断可能是操作系统文件系统受损导致,开始寻求解决办法:
网上的说法都是进入紧急模式,通过 xfs_repair 命令进行文件系统修复。
1、尝试进入单用户模式
失败,还是卡在 mount /sysroot 步骤。
2、直接在此界面的操作符上进行 xfs_repair
执行命令: xfs_repair -v -L /dev/dm-0
失败,在当前的操作符下执行此命令无反应。

二、使用SystemRescueCd进行修复

SystemRescueCd介绍

官网地址:http://www.system-rescue-cd.org/
1、SystemRescueCd 是一个可启动光盘/U盘的Linux系统,基于Gentoo LiveCd。简称SysRescCD。
2、它主要用于系统崩溃后修复/管理系统和数据。同时也为在计算机上完成管理任务提供方便,例如创建和修改硬盘分区。
3、其内核支持大多数文件系统(ext2/ext3/ext4, reiserfs, btrfs, xfs, jfs, vfat, ntfs, iso9660)以及网络文件系统(samba, nfs)。
4、它包含了大量的Linux实用工具(parted、partimage、fstools等)及基本软件(编辑器、文件管理器、网络工具)。
5、它面向易用性,只要从光盘引导你就可以做任何事情了。

开始修复

1、在服务器上挂载 SystemRescueCd 的ISO镜像,并启动进入第一个默认启动项:
sysrescdc
2、fdisk -l 命令查看硬盘情况,发现硬盘、分区及LVM卷看着状况良好。
sysrescdc
3、尝试 mount /dev/mapper/centos-root 卷,发现无法挂载,判断此卷可能受损。
sysrescdc
4、通过 lvscan、lvdisplay 查看LVM卷的详细信息,但没看出什么问题。
sysrescdc
sysrescdc
5、由于第三步无法挂载 centos-root,这里开始进行 xfs_repair 修复。
sysrescdc
这里出现了报错。
修复不了该怎么办,这里死马当活马医,使用 xfs_repair -L /dev/mapper/centos-root 进行修复。
说明:-L是修复xfs文件系统的最后手段,慎重选择,它会清空日志,会丢失用户数据和文件。
此过程很快完成,且没有报错。
6、尝试再次挂载这个lvm卷,发现可以挂载上了。
sysrescdc
7、reboot重启正常进入系统,修复完成。

总结

此次故障是由于断电异常宕机导致 LVM 卷出现问题导致,最后使用 SystemRescueCd 救援系统通过 xfs_repair 命令修复完成。
由于我们使用了 xfs_repair -L 选项进行修复,系统顺利修复但有数据文件丢失,最后进入系统mysql由于数据损坏无法启动(通过其他方式修复)。但系统可以顺利修复已是不幸中的万幸。