Xen 虚拟机CentOS 6.5 内核加载失败救援实例一则

Linux在启动中往往会由于一些故障而无法正常其中。这是时候往往可以通过Single单用户模式、救援模式等方式进行启动和救援恢复正常。本文虫虫给大家介绍一下这些典型的模式以及以一个Xen虚拟化模式下Centos 6.5升级内核情况下导致系统故障的救援解决。

单用户模式

Linux下最常用的是单用户模式,可以在最小加载模式下(init 1),无需用户认证情况下加载系统,进入shell命令行界面。单用户模式网络被禁用,而且也没有启用很多服务。如果出现系统文件损坏,配置文件丢失,或者用户密码丢失无法进入系统的情况,可以使用单用户模式。注意新版本的centos 7和以前版本centos进去单用户方式不一样,我们分别截图介绍下:

centos 6

在Grub菜单界面

Xen 虚拟机CentOS 6.5 内核加载失败救援实例一则

按e,编辑命令

Xen 虚拟机CentOS 6.5 内核加载失败救援实例一则

kernel行的最后加上single,回车,然后按b,加载启动系统。

Xen 虚拟机CentOS 6.5 内核加载失败救援实例一则

就会到到单用户shell界面,在改界面可以用passwd修改root密码。

centos 7

centos7 是用grub2菜单,菜单界面如下图:

Xen 虚拟机CentOS 6.5 内核加载失败救援实例一则

按b进入编辑界面,注意centos 7下grub 2的编辑界面和以前的系统大有不同

Xen 虚拟机CentOS 6.5 内核加载失败救援实例一则

在linux 16 哪一行 LANG= en_US.UTF-8 最后增加"init=/bin/sh"

Xen 虚拟机CentOS 6.5 内核加载失败救援实例一则

按住Ctrl+x 启动系统就进入了单用户模式。然后用passwd修改密码或者其他操作

Xen 虚拟机CentOS 6.5 内核加载失败救援实例一则

救援模式

有时候系统根本无法启动,甚至grub菜单都加载不了,这时候就需要使用Linux启动盘来辅助进入救援模式来做故障修复了。

救援模式需要启动盘辅助加载系统,所以要改变boot顺序为从光盘或者USB启动。注意在如果使用xen虚拟机Centos系统的话,是无法修改boot顺序的,如下图:

Xen 虚拟机CentOS 6.5 内核加载失败救援实例一则

要改变启动顺序必须借助Xen宿主机来,我们先登陆宿主机:

执行xe vm-list,找到我们的虚拟机的uuid

Xen 虚拟机CentOS 6.5 内核加载失败救援实例一则

然后依次执行下面两个命令:

xe vm-param-set uuid=97f817bd-7f6b-3ea8-056b-e19fe055c800 HVM-boot-policy="BIOS order"
xe vm-param-set uuid=97f817bd-7f6b-3ea8-056b-e19fe055c800 HVM-boot-params:order="dc"

这样就可以显示设置boot顺序了

Xen 虚拟机CentOS 6.5 内核加载失败救援实例一则

我们选中DVD-Drive,然后启动系统

Xen 虚拟机CentOS 6.5 内核加载失败救援实例一则

选择"Rescue installed system"进入救援模式,选择语言、键盘和网络后进入

Xen 虚拟机CentOS 6.5 内核加载失败救援实例一则

Tab点击Continue继续

注意该页的信息我们的系统被加载到/mnt/sysimage下了,后面要用到。

Xen 虚拟机CentOS 6.5 内核加载失败救援实例一则

此处选择shell进入命令操作界面,其他两个是fakd进行诊断;reboot重启系统。

Xen 虚拟机CentOS 6.5 内核加载失败救援实例一则

这时就会进入一个命令行界面,注意此时系统是临时的光盘启动救援系统。为了进行操作我们需要加载硬盘上的系统。我们要用chroot命令:

chroot /mnt/sysimage
Xen 虚拟机CentOS 6.5 内核加载失败救援实例一则

然后就可以进行其他操作了,比如修改密码,修复配置,备份文件等。

救援实例

最后我们举个救援的实例作为结束,之前Linux内核爆个严重漏洞TCP网络数据包时候存在缺陷导致三个漏洞, CVE-2019-11477,CVE-2019-11478和CVE-2019-11479,关于该漏洞的预警和修复方法,虫虫的此前发文介绍过。修复该漏洞根本方法是升级内核,Centos 6.5 需要升级内核版本到kernel-2.6.32-754.15.3版本。

用yum update kernel升级Xen虚拟机Centos 6.5后,重启出现故障,甚至无法进入grub菜单。

Xen 虚拟机CentOS 6.5 内核加载失败救援实例一则

此时我们可以使用上面的提到的救援模式,在救援模式下修改/etc/grub.conf

Xen 虚拟机CentOS 6.5 内核加载失败救援实例一则

修改配置中default=1,表示加载上一个内核。

然后reboot重启系统,故障恢复。

由于centos内核补丁和Xen架构兼容导致问题,所以恢复系统后

yum remove kernel-2.6.32-754.15.3.el6.x86_64.rpm

恢复所有现场。

以上是一般情况下的救援恢复模式。由于我们的事故主机是Xen虚拟机,我们有更便捷编辑启动选项的方法。那就是使用xe命令来直接在xen宿主机上编辑虚拟机的grub.conf。

首先登陆到xen宿主机上:

1、执行 xe vm-list查询事故机器的uuid(同上面部分)。

Xen 虚拟机CentOS 6.5 内核加载失败救援实例一则

2 在xen center关闭该机器或者用命令关机

xe vm-shutdown uuid=97f817bd-7f6b-3ea8-056b-e19fe055c800

3、通过以下命令启动编辑:

xe-edit-bootloader -u 97f817bd-7f6b-3ea8-056b-e19fe055c800 -p 1
Xen 虚拟机CentOS 6.5 内核加载失败救援实例一则

和救援模式一样,修改配置中default=1,保存。

Xen 虚拟机CentOS 6.5 内核加载失败救援实例一则

重启系统,其他同救援模式操作一样。

总结

本文介绍了Linux(centos)下系统单用户模式以及救援模式及操作方法。并通过实例介绍了在内核升级失败系统无法启动情况下的救援恢复操作。并穿插介绍了xen虚拟化中一些xen宿主机管理命令。

展开阅读全文

页面更新:2024-06-11

标签:内核   虚拟机   实例   加载   宿主   漏洞   顺序   单用户   菜单   界面   命令   编辑   模式   操作   系统   科技

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top