【摘要】
创新互联专注为客户提供全方位的互联网综合服务,包含不限于网站建设、做网站、水磨沟网络推广、微信小程序、水磨沟网络营销、水磨沟企业策划、水磨沟品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联为所有大学生创业者提供水磨沟建站搭建服务,24小时服务热线:18980820575,官方网址:www.cdcxhl.com
当Linux系统出现故障无法正常启动系统时,Linux准备了单用户模式、救援模式等方式可以让我们有效的处理这类问题。本文简单分享一个利用救援模式解决Redhat系统无法启动的案例。
【正文】
一、 问题背景
1) 问题描述
一台部署了RHEL 7.2的物理服务器,突发死机故障,在尝试重启时,发现服务器无法正常进入操作系统,直接进入emergency mode。本文主要分享操作系统启动异常的问题排查过程。(服务器死机据后续日志分析,确定为内核的bug所致,本文不进行累述)
2) 故障现象
系统启动后,提示无法找到/dev/mapper/rhel-root,并直接进入emergency mode。
二、 排查思路
1) 收集系统启动异常的相关提示信息,获取到问题关键点:
Warning:/dev/rhel/root does not exist
初步定为配置文件问题或者逻辑卷root本身问题;
2) 尝试在应急模式下检查逻辑卷状态,发现当前情况并不稳定,常用命令无法使用、显示多为乱码;
3) 尝试进入单用户模式,发现情况和应急模式一样;
Redhat 7.2进入单用户模式:
1、开机启动至内核选择界面,选择第一项,按e进行编辑
2、定位到linux16这一行,找到ro,修改其为rw init=/sysroot/bin/sh
3、按ctrl+X启动至单用户模式
4) 利用系统安装光盘,进入Linux救援模式,进行排查。
Redhat 7.2救援模式启动方法:
1、把光盘加入光驱,然后启动,以光盘进行引导,选择救援模式(中间具体的步骤不再细说)
2、文件系统挂载到/mnt/sysimage目录下,这时切换到此目录下使用chroot /mnt/sysimage这条命令即可
5) 在救援模式下,首先查看服务器lv的情况,发现所有lv
status均为未激活状态。
查看lv
#Lvdisplay
修改lv
#vgchange -a y /dev/docker/root
6) 在尝试修改root的lv status时,发现root所在的vg名和启动时所指定的vg名不一致,基本确定问题点;
7) 修复
l 编辑文件/etc/default/grub
l 修改此文件中GRUB_CMDLINE_LINUX一行中rd.lvm.lv为合适的值
l 再执行以下命令重做grub :
n UEFI: grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
n 非UEFI:grub2-mkconfig -o /boot/grub2/grub.cfg
l 查看文件grub.cfg中是否修改为rd.lvm.lv=rhel/root
l 修改/etc/grub2.cfg中root=后接的lv路径改为实际的路径。
8) 系统启动后,通过history日志,确定为该系统业务部署时,使用了vgrename命令修改了vg名。
三、 总结
对于Linux的问题处理,需要对Linux的运行原理有所理解,这此前提下才能根据有限的提示信息判断问题方向、确定排查范围、找到解决方法。同时,提醒各位初学linux的同事么,在进行linux的一些操作时,需要充分考虑这些操作可能造成的影响,避免类似上述的问题发生。
转自 嘉为教育-rhce认证_rhce培训_linux培训_linux认证_linux考证
可以试一下单用户,把存储挂在去掉,看一下是否解决。
下面延展回答中有相关的解决办法。
几种解决方法(分别是七种方法,非步骤):
如遇提示FSCK时,请小心。如果可能,请尽快断开系统,UMOUNT所有分区。
必需执行FSCK时,先做准备工作,方法一:可事先用dd命令将所涉及到的分区输出到另外的存储体上(最好不要在出错的存储体本身上做dd) 命令大致结构可如: dd if=/dev/sda0 of=/dev/sdb0 .....
必需执行FSCK时,先做准备工作,方法二:将整个LINUX存储体挂载到虚拟机环境,将LINUX存储体设为Nonpersisten模式,再执行,执行过后,如果数据完好,应尽快通过FTP等方式拷贝出来。
必需执行FSCK时,先做准备工作,方法三:将整个LINUX存储体挂载到其他系统上(如WINDOWS),做好镜像后再做FSCK。
如上面几种方式均因条件等原因无法实施,必须执行时,可小心观察FSCK的执行提示(关掉-a)如果发现有提示节点错误需更正或清0、节点描述文件大小不正确等信息,应停止执行FSCK。
因恢复需要参考很多信息,因尽可能保持系统不工作状态,至少不得再次MOUNT分区(即便不做任何读写操作,也会因系统的工作原理不断降低数据恢复的可能性,增加数据恢复的难度)。
寻求专业数据恢复公司帮助。
除了用光盘引导rescue模式,敲入Linux rescure进入linux单用户系统修复模式外,
还有一种方法是用启动装载器来进入单用户模式:
1. grub
进入启动画面之后,敲入“e”,把光标移动到kernel ...那一行,再敲入“e”,在kernel 一行的最后加上空格single,回车
敲入“b”,启动系统,即进入单用户模式,
这个时候就可以用passwd命令改密码了。
2. Lilo
进入Lilo命令行模式,敲入Linux single,即进入单用户模式。
passwd ...
如果grub/Lilo设了密码,一定要记住才行。要是忘了grub/Lilo的密码,就只有用rescue模式了。