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

一、故障现象

系统启动卡在 mount /sysroot
avatar

判断可能是操作系统文件系统受损导致,开始寻求解决办法:

网上的说法都是进入紧急模式,通过 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镜像,并启动进入第一个默认启动项:

avatar

2、fdisk -l 命令查看硬盘情况,发现硬盘、分区及LVM卷看着状况良好。

avatar

3、尝试 mount /dev/mapper/centos-root 卷,发现无法挂载,判断此卷可能受损。

avatar

4、通过 lvscan、lvdisplay 查看LVM卷的详细信息,但没看出什么问题。

avatar

avatar

5、由于第三步无法挂载 centos-root,这里开始进行 xfs_repair 修复。

avatar

这里出现了报错。

修复不了该怎么办,这里死马当活马医,使用 xfs_repair -L /dev/mapper/centos-root 进行修复。

说明:-L是修复xfs文件系统的最后手段,慎重选择,它会清空日志,会丢失用户数据和文件。
此过程很快完成,且没有报错。

6、尝试再次挂载这个lvm卷,发现可以挂载上了。

avatar

7、reboot重启正常进入系统,修复完成。

总结

此次故障是由于断电异常宕机导致 LVM 卷出现问题导致,最后使用 SystemRescueCd 救援系统通过 xfs_repair 命令修复完成。

由于我们使用了 xfs_repair -L 选项进行修复,系统顺利修复但有数据文件丢失,最后进入系统mysql由于数据损坏无法启动(通过其他方式修复)。但系统可以顺利修复已是不幸中的万幸。

转载:勇敢的心