Linux系统非正常关机导致磁盘异常的问题及解决

 更新时间:2025年11月12日 16:38:30   作者:云计算-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 文件下自定义语法错误、系统非正常关机。

可以根据这两个思路去排查,解决即可。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Linux cal命令的使用

    Linux cal命令的使用

    这篇文章主要介绍了Linux cal命令的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • 在ubuntu中部署samba服务器的方法

    在ubuntu中部署samba服务器的方法

    这篇文章主要介绍了在ubuntu中部署samba服务器的方法,包括samba的安装,创建Samba配置文件的方法,本文给大家介绍的非常详细,具有参考借鉴价值,需要的朋友可以参考下
    2016-10-10
  • 详解如何在Ubuntu 20.04上安装Xrdp服务器(远程桌面)

    详解如何在Ubuntu 20.04上安装Xrdp服务器(远程桌面)

    这篇文章主要介绍了详解如何在Ubuntu 20.04上安装Xrdp服务器(远程桌面),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • Git pull命令与fetch命令的区别

    Git pull命令与fetch命令的区别

    这篇文章主要介绍了Git pull命令与fetch命令的区别的相关资料,需要的朋友可以参考下
    2017-03-03
  • ubuntu24.04设置静态IP地址的方法教学

    ubuntu24.04设置静态IP地址的方法教学

    这篇文章主要为大家详细介绍了使用ubuntu24.04设置静态IP地址的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-05-05
  • 详解Linux下调试器GDB的基本使用方法

    详解Linux下调试器GDB的基本使用方法

    GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。不管是调试Linux内核空间的驱动还是调试用户空间的应用程序,掌握gdb的用法都是必须。而且,调试内核和调试应用程序时使用的gdb命令是完全相同的
    2021-06-06
  • Linux Autofs自动挂载服务安装部署教程

    Linux Autofs自动挂载服务安装部署教程

    大家好,本篇文章主要讲的是Linux Autofs自动挂载服务安装部署教程,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下哦
    2021-11-11
  • Linux中查看操作系统及其版本信息的多种方法

    Linux中查看操作系统及其版本信息的多种方法

    在服务器运维或者部署系统中,经常需要确认服务器的系统版本、cpu信息等,在Linux系统中,有多种方法可以查看操作系统及其版本信息,以下是一些常用的方法,需要的朋友可以参考下
    2025-09-09
  • 解决安装apache时端口号被占用的问题

    解决安装apache时端口号被占用的问题

    下面小编就为大家带来一篇解决安装apache时端口号被占用的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • ubuntu18.0.4安装mysql并解决ERROR 1698 (28000): Access denied for user ''''root''''@''''localhost''''

    ubuntu18.0.4安装mysql并解决ERROR 1698 (28000): Access denied for

    这篇文章主要介绍了ubuntu18.0.4安装mysql并解决ERROR 1698 (28000): Access denied for user 'root'@'localhost',现在将ubuntu18.0.4上安装mysql并将碰到的问题记录下来,感兴趣的朋友一起看看吧
    2019-11-11

最新评论