前言
记录一下 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 文件下自定义语法错误、系统非正常关机。
可以根据这两个思路去排查,解决即可。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论