百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程文章 > 正文

Linux内核升级失败怎么办?实例救援操作

qiyuwang 2024-10-26 13:56 22 浏览 0 评论

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

单用户模式

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

centos 6

在Grub菜单界面

按e,编辑命令

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

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

centos 7

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

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

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

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

救援模式

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

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

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

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

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

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顺序了

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

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

Tab点击Continue继续

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

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

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

chroot /mnt/sysimage

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

救援实例

最后我们举个救援的实例作为结束,之前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菜单。

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

修改配置中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(同上面部分)。

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

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

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

xe-edit-bootloader -u 97f817bd-7f6b-3ea8-056b-e19fe055c800 -p 1

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

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

总结

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

相关推荐

基于Docker方式安装与部署Camunda流程引擎

1Camunda简介官网:https://docs.camunda.org/manual/7.19/installation/docker/Camunda是一个轻量级、开源且高度灵活的工作流和决策自...

宝塔Linux面板如何部署Java项目?(宝塔面板 linux)

通过宝塔面板部署Java还是很方便的,至少不需要自己输入tomcat之类的安装命令了。在部署java项目前,我还是先说下目前的系统环境,如果和我的系统环境不一样,导致部署不成功,那你可能需要去找其他资...

浪潮服务器如何用IPMI安装Linux系统

【注意事项】此处以浪潮服务器为例进行演示所需使用的软件:Chrome浏览器个人PC中需要预先安装java,推荐使用jdk-8u181-windows-x64.exe【操作步骤】1、在服务器的BIOS中...

Centos7环境Hadoop3集群搭建(hadoop集群环境搭建实验报告)

由于项目需要存储历史业务数据,经过评估数据量会达到100亿以上,在原有mongodb集群和ES集群基础上,需要搭建Hbase集群进行调研,所以首先总结一下Hadoop集群的搭建过程。一、三个节点的集群...

Hadoop高可用集群搭建及API调用(hadoop高可用原理)

NameNodeHA背景在Hadoop1中NameNode存在一个单点故障问题,如果NameNode所在的机器发生故障,整个集群就将不可用(Hadoop1中虽然有个SecorndaryNameNo...

使用Wordpress搭建一个属于自己的网站

现在开源的博客很多,但是考虑到wordpress对网站的seo做的很好,插件也多。并且全世界流量排名前1000万的网站有33.4%是用Wordpress搭建的!所以尝试用Wordpress搭建一个网站...

Centos 安装 Jenkins(centos 安装ssh)

1、Java安装查看系统是否已安装Javayumlistinstalled|grepjava...

Java教程:gitlab-使用入门(java中的git)

1导读本教程主要讲解了GitLab在项目的环境搭建和基本的使用,可以帮助大家在企业中能够自主搭建GitLab服务,并且可以GitLab中的组、权限、项目自主操作...

Dockerfile部署Java项目(docker部署java应用)

1、概述本文主要会简单介绍什么是Docker,什么是Dockerfile,如何安装Docker,Dockerfile如何编写,如何通过Dockerfile安装jar包并外置yaml文件以及如何通过do...

如何在Eclipse中搭建Zabbix源码的调试和开发环境

Zabbix是一款非常优秀的企业级软件,被设计用于对数万台服务器、虚拟机和网络设备的数百万个监控项进行实时监控。Zabbix是开放源码和免费的,这就意味着当出现bug时,我们可以很方便地通过调试源码来...

Java路径-02-Java环境配置(java环境搭建及配置教程)

1Window环境配置1.1下载...

35.Centos中安装python和web.py框架

文章目录前言1.Centos7python:2.Centos8python:3.进行下载web.py框架然后应用:4.安装好之后进行验证:5.总结:前言...

《我的世界》服务器搭建(我的世界服务器如何搭建)

1.CentOS7环境1.1更改YUM源#下载YUM源文件curl-o/etc/yum.repos.d/CentOS-Base.repohttps://mirrors.aliyun.com...

CentOS 7 升级 GCC 版本(centos7.4升级7.5)

1.GCC工具介绍GCC编译器:...

Linux安装Nginx详细教程(linux安装配置nginx)

环境准备1.因为Nginx依赖于gcc的编译环境,所以,需要安装编译环境来使Nginx能够编译起来。命令:yuminstallgcc-c++显示完毕,表示安装完成:2.Nginx的http模块需要...

取消回复欢迎 发表评论: