记一次centos 7内核升级事故

情景

公司作等保3测评,在进行系统漏洞检测时发现内核存在漏洞,须要进行升级。html

名称 版本
升级前内核 CentOS Linux (3.10.0-327.el7.x86_64) 7 (Core)
升级后内核 CentOS Linux (3.10.0-957.1.3.el7.x86_64) 7 (Core)

正确操做过程

升级方法

升级方法很简单,找到对应版本的内核rpm包,而后直接使用yum或rpm进行安装便可,该过程当中可能须要处理一些包之间的依赖问题。linux

$ yum install -y kernel-3.10.0-957.1.3.el7.x86_64.rpm kernel-headers-3.10.0-957.el7.x86_64.rpm kernel-tools-3.10.0-957.1.3.el7.x86_64.rpm kernel-tools-libs-3.10.0-957.1.3.el7.x86_64.rpm

生效新版本内核

安装完新版本内核以后必定要进行以下处理,否则就会和我同样在重启服务器的时候踩坑。centos

接下来操做的目的就是经过grub更改服务器启动时加载内核的版本!bash

  • 查看当前安装的系统内核服务器

    $ rpm -qa kernel*
    kernel-3.10.0-957.1.3.el7.x86_64
    kernel-headers-3.10.0-957.el7.x86_64
    kernel-tools-3.10.0-957.1.3.el7.x86_64
    kernel-tools-libs-3.10.0-957.1.3.el7.x86_64
  • 查看当前系统默认启动的内核版本,结果可能有以下两种:学习

    $ grub2-editenv list
    # 结果1:无相关信息
    saved_entry=0
    
    # 结果2:当前运行的系统版本
    saved_entry=CentOS Linux (3.10.0-327.el7.x86_64) 7 (Core)
  • 切换系统启动时默认内核版本:ui

    $ grub2-set-default 'CentOS Linux (3.10.0-957.1.3.el7.x86_64) 7 (Core)'
  • 而后能够顺利重启服务器了,重启后查看系统信息:google

    $ uname -a
    或
    $ cat /proc/version   
    Linux version 3.10.0-957.1.3.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) ) #1 SMP Thu Nov 29 14:49:43 UTC 2018

至此内核升级完成。centos7

意外

既然有正确操做过程,有时候每每就会一不当心犯点错误。由于是第一次作内核升级,我就顺利的踩坑了。精彩过程请往下看:命令行

重启

新版内核安装完成后须要服务器重启才生效。第一次操做,就当一个普通rpm包升级来处理的,安装完成后果断执行 init 6 重启服务器,结果悲催了,以下图:

20190124154832791453243.png

卡在这里不动了,看提示信息也没报错,直接回车,结果下面的场景出现了:

20190124154832797348980.png

找不到对应版本的内核!!!

WTF!!!

解决问题

认真分析一下,提示信息是说找不到”3.10.0-327.el7.x86_64“版本的内核,那既然如此,百度(google)吧!关键词”centos 7 内核升级重启找不到内核“ ,找到一下几篇文章:

看过第一篇和第二篇文档后大概了解了修复的原理,即修改内核启动顺序,第一篇中的重装原系统内核对于本次内核升级来讲意义不大,第二篇却是提醒我一个核心——linux系统一切皆文件!

既然能够在服务器宕机前经过grub命令行更改内核启动顺序,那么宕机后确定能够经过救援模式进入grub修改或者其余办法。

问题复现

由于是第一次遇到这种问题,整好手头有虚拟机,因而就抱着试试看的心理复现了该错误场景,重启虚拟机来到内核选择界面:

20190124154832876030297.png

提示:"e" 编辑当前所选项目!反正是虚拟机,随便搞就是了,果断进入编辑状态:

20190124154832347583118.png

恰好有内核信息出现,心里窃喜,不如就试试在这里更改一下系统版本信息,再继续往下看:

20190124154832363032560.png

一口气全改了就是了,大不了重装系统了(前提当前服务器没部署特别重要的服务,否则的话仍是要严谨些)。将上图中红框内的信息都改为新版本 “3.10.0-957.1.3.el7.x86_64” ,而后Ctrl-x,进入系统加载界面,瞬间心里如释重负。

等待系统启动完成,赶忙登录检查一下状态,一切正常!!!

实践出真知!!!(PS:没事不要瞎搞,搞以前必定要好好学习!!!)

发篇文档装B!!!

相关文章
相关标签/搜索