一次服务器非法重启后导致的故障排查记录
创始人
2024-01-17 05:03:49
0

作者:JackTian
来源:公众号「杰哥的IT之旅」
ID:Jake_Internet
转载请联系授权(微信ID:Hc220088)
原文地址:一次服务器非法重启后导致的故障排查记录

大家好,我是杰哥。

前段时间遇到一个服务器问题:非法重启设备后,服务器进入救援模式,数据盘也不显示挂载是否成功。

说来这个问题,我觉得还挺奇葩。今天就来跟大家分享下整个过程以及我的处理方法。避免大家在今后的学习或工作中遇到跟我同样的问题。

一、问题背景

有一天,研发小伙伴跟我反馈有一台服务器连不上,一直卡在如下页面。


该页面是 Xshell 连接某一台服务器时,建立的连接,按Ctrl+Alt+]键切换到本地 Shell 终端。当我看到卡在该页面时,毫无犹豫的自己也尝试了起来,果然也是连不上。前一天还正常连接,第二天就出问题了?

还好服务器有配置远程管理地址,通过远程控制管理页面的方式启动 iKVM HTML5 和远程管理服务器,这样就能登到这台出故障的设备上查看服务器界面处于一种什么样的状态。


登到这台故障的服务器后,直接重启了服务器,然后 Xshell 再次尝试连接,是可以远程连接的。难道这就是传说中的重启治百病,如此简单粗暴?


当进入系统后,执行简单的命令都提示输入/输出错误。


过不久后,直接不建立连接了,彻底挂了。。。


再通过远程控制管理页面查看服务器当前状态,一看进入到救援模式了。

到该模式下后,

  • 输入journalctl -xb命令,可查看系统日志
  • 输入systemctl reboot命令,重启系统
  • 输入systemctl default^D命令,再次尝试进入默认模式
  • 输入 root 用户密码,则可以进入系统


根据日志报错提示:挂载文件系统可以纠正该问题。

二、解决方案

执行df -h命令,用于在 Linux 操作系统下显示文件系统的磁盘使用情况。

使用-h选项以KB以上的单位来显示,可读性高。

  • 第一列:Filesystem文件系统的名称
  • 第二列:Size文件系统的容量
  • 第三列:Used已用多少的磁盘空间
  • 第四列:Avail可用多少的磁盘空间
  • 第五列:Use%磁盘使用率
  • 第六列:Mounted On挂载点


根据上图结果来看,没有/dev/sdb1文件系统所挂载的/bigdata目录磁盘情况。

尝试将/dev/sdb1取消挂载,重新挂载,反复报不同的错误。




通过 RAID 卡管理界面查看状态也是 Online。

当如果重启设备,能看到如下界面,则说明正在初始化设备。


恰巧,这台故障的服务器有多块硬盘组成的 44T 的一个目录有存放 46% 的数据,在有数据的情况下,如何不格式化磁盘重新挂载呢?


取消挂载

umount /dev/sdb1

尝试修复

若不确定挂载点属于哪种文件类型时,可以执行:df -Th命令来判断。


如果挂载点为xfs 文件类型,可以执行:xfs_repair -L + 文件系统名称路径命令进行修复。

如果挂载点为fsck.ext2/3/4文件类型,可以执行:fsck.ext2/3/4文件类型 + 文件系统路径命令进行修复。

因为我这是xfs的文件类型,按xfs_repair命令来修复受损的 xfs 文件系统,执行如下命令进行修复/dev/sdb1

xfs_repair -L /dev/sdb1

执行修复是根据磁盘中的数据使用率来决定修复时长的,所以时间会较长,我采用放后台的形式执行的,执行完成后,查看还是否有进程存在,如有则说明未修复完,如没有则说明修复完成,然后再重新挂载。

mount /dev/sdb1 /bigdata

挂载完毕后,执行df -h命令来确定是否挂载成功。


到此,就恢复挂载完毕了。

上面案例是针对磁盘有数据时且不格式化的情况下恢复并挂载。

那么有小伙伴该问了,无存储数据的情况下,如何挂载磁盘,我这里也给大家整理出来一个详细的操作步骤:

第一步:

ll /dev/disk/by-path  # 查看需要挂的磁盘名称
fdisk -l              # 查看磁盘信息
lsblk                 # lsblk 命令默认情况下将以树状列出所有块设备,包括查看磁盘挂载信息

第二步:

parted /dev/sdb mklabel gpt            # 新建 /dev/sdb 的磁盘标签类型为 GPT
parted /dev/sdb mkpart primary 0 100%  # 将 /dev/sdb 整个空间分给同一个分区
ignore                                 # 忽略上述执行命令后的告警
mkfs.xfs -f /dev/sdb                   # 格式化分区

注意:格式化分区可能会执行慢些,需耐心等待。

第三步:

mkdir /bigdata            # 创建目录,自定义目录名
mount /dev/sdb /bigdata   # 将 sdb 挂载到 /bigdata 目录下

第四步:

blkid   # 查看 sdb 的 UUID 并复制

第五步:

vi /etc/fstab    # 参考已挂载的磁盘,将 sdb 的 UUID 和挂载目录关联上,保存后重启设备

注意:UUID 一定要写对,否则重启后无法正常进入系统。

第六步:

df -h   # 检查是否挂载成功

按照上述操作步骤执行,肯定能操作成功。如果你有更好的解决方案,也欢迎大家留言分享。

参考文献

xfs_repair命令详解 https://bbs.qunyingkeji.com/2052/

推荐阅读:

  • 14 款命令行常用工具的替代品
  • 7 款可替代 top 命令的工具
  • 11 款可替代 top 命令的工具
  • 在线运行 Linux,真滴牛逼。
  • 10 款你不知道的 Linux 环境下的替代工具

以上就是今天所要分享的全部内容了。

如果你觉得这篇文章对你有点用的话,为本文点个赞、留个言或者转发一下,让更多的朋友看到,因为这将是我持续输出更多优质文章的最强动力!

上一篇:桂花香,香到忧伤

下一篇:主教座堂

相关内容

热门资讯

常用商务英语口语   商务英语是以适应职场生活的语言要求为目的,内容涉及到商务活动的方方面面。下面是小编收集的常用商务...
六年级上册英语第一单元练习题   一、根据要求写单词。  1.dry(反义词)__________________  2.writ...
复活节英文怎么说 复活节英文怎么说?复活节的英语翻译是什么?复活节:Easter;"Easter,anniversar...
2008年北京奥运会主题曲 2008年北京奥运会(第29届夏季奥林匹克运动会),2008年8月8日到2008年8月24日在中华人...
英语道歉信 英语道歉信15篇  在日常生活中,道歉信的使用频率越来越高,通过道歉信,我们可以更好地解释事情发生的...
六年级英语专题训练(连词成句... 六年级英语专题训练(连词成句30题)  1. have,playhouse,many,I,toy,i...
上班迟到情况说明英语   每个人都或多或少的迟到过那么几次,因为各种原因,可能生病,可能因为交通堵车,可能是因为天气冷,有...
小学英语教学论文 小学英语教学论文范文  引导语:英语教育一直都是每个家长所器重的,那么有关小学英语教学论文要怎么写呢...
英语口语学习必看的方法技巧 英语口语学习必看的方法技巧如何才能说流利的英语? 说外语时,我们主要应做到四件事:理解、回答、提问、...
四级英语作文选:Birth ... 四级英语作文范文选:Birth controlSince the Chinese Governmen...
金融专业英语面试自我介绍 金融专业英语面试自我介绍3篇  金融专业的学生面试时,面试官要求用英语做自我介绍该怎么说。下面是小编...
我的李老师走了四年级英语日记... 我的李老师走了四年级英语日记带翻译  我上了五个学期的小学却换了六任老师,李老师是带我们班最长的语文...
小学三年级英语日记带翻译捡玉... 小学三年级英语日记带翻译捡玉米  今天,我和妈妈去外婆家,外婆家有刚剥的`玉米棒上带有玉米籽,好大的...
七年级英语优秀教学设计 七年级英语优秀教学设计  作为一位兢兢业业的人民教师,常常要写一份优秀的教学设计,教学设计是把教学原...
我的英语老师作文 我的英语老师作文(通用21篇)  在日常生活或是工作学习中,大家都有写作文的经历,对作文很是熟悉吧,...
英语老师教学经验总结 英语老师教学经验总结(通用19篇)  总结是指社会团体、企业单位和个人对某一阶段的学习、工作或其完成...
初一英语暑假作业答案 初一英语暑假作业答案  英语练习一(基础训练)第一题1.D2.H3.E4.F5.I6.A7.J8.C...
大学生的英语演讲稿 大学生的英语演讲稿范文(精选10篇)  使用正确的写作思路书写演讲稿会更加事半功倍。在现实社会中,越...
VOA美国之音英语学习网址 VOA美国之音英语学习推荐网址 美国之音网站已经成为语言学习最重要的资源站点,在互联网上还有若干网站...
商务英语期末试卷 Part I Term Translation (20%)Section A: Translate ...