Linux系统非正常关机导致磁盘异常的问题及解决
作者:云计算-Security
文章介绍了在VMware ESXi虚拟化环境中,由于断电导致的Linux系统非正常关机和磁盘异常问题及其解决方案,主要问题包括文件系统损坏和报错信息,解决方案涉及检查和修复`/etc/fstab`文件中的语法错误,并使用`dmsetup`命令恢复设备映射
前言
记录一下 Linux 系统非正常关机导致磁盘异常的解决方案,我们公司使用的是 VMware ESXi 虚拟化,内建了几十台虚拟服务器,最近公司断了两次电,导致 Linux 系统非正常关机,从而导致服务器应用停止运行,且导致磁盘损坏的现象。
以下是我遇到的一部分问题,并给出了解决方案。
一、报错情况
1.1 报错1
如图所示(图一)

首先按照提示查看详细的报错日志(图二)

对于这个报错信息,建议大家去官方具体查看。
1.2 报错2
如图所示(图三)

说明
这个报错是在修复完图一后又出现的同类型报错。
二、解决方案
2.1 报错1解决方案
首先看一下这几个目录,dm 是 device mapper(设备映射)的意思,如果分区时使用了 LVM,则一般生成 dm-N 逻辑卷,它类似于普通分区的一个分区 sda0。
ll /dev/dm*
brw-rw---- 1 root disk 253, 0 12月 16 15:43 /dev/dm-0
brw-rw---- 1 root disk 253, 1 12月 16 15:43 /dev/dm-1
brw-rw---- 1 root disk 253, 2 12月 16 15:43 /dev/dm-2
lvdisplay |awk '/LV Name/{n=$3} /Block device/{d=$3; sub(".*:","dm-",d); print d,n;}'
# 如下图是其对应的设备映射关系
# dm-0:根分区(/)
# dm-1:交换分区(swap)
# dm-2:家目录(/home)

图一报错提示这些设备异常,需要恢复(repair),于是根据提示恢复即可。
xfs_repair -v -L /dev/dm-0 reboot
2.2 报错2解决方案
有时候其他目录可以访问(如:ls等),而 /home/ 目录下却不能 ls(或ll),解决方案同上
# 解决方案同上 xfs_repair -v -L /dev/dm-2 reboot # 如果报错:xfs_repair: cannot open /dev/dm-2: Device or resource busy ... # 先取消挂载:umount /dev/mapper/centos-home # 再执行 xfs_repair -v -L /dev/dm-2 # 最后重启即可:reboot
总结
导致以上这些错误的原因主要有两个:/etc/fstab 文件下自定义语法错误、系统非正常关机。
可以根据这两个思路去排查,解决即可。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
