公司作等保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
重啓服務器,結果悲催了,以下圖:
卡在這裏不動了,看提示信息也沒報錯,直接回車,結果下面的場景出現了:
找不到對應版本的內核!!!
WTF!!!
認真分析一下,提示信息是說找不到」3.10.0-327.el7.x86_64「版本的內核,那既然如此,百度(google)吧!關鍵詞」centos 7 內核升級重啓找不到內核「 ,找到一下幾篇文章:
看過第一篇和第二篇文檔後大概瞭解了修復的原理,即修改內核啓動順序,第一篇中的重裝原系統內核對於本次內核升級來講意義不大,第二篇卻是提醒我一個核心——linux系統一切皆文件!
既然能夠在服務器宕機前經過grub命令行更改內核啓動順序,那麼宕機後確定能夠經過救援模式進入grub修改或者其餘辦法。
由於是第一次遇到這種問題,整好手頭有虛擬機,因而就抱着試試看的心理復現了該錯誤場景,重啓虛擬機來到內核選擇界面:
提示:"e" 編輯當前所選項目!反正是虛擬機,隨便搞就是了,果斷進入編輯狀態:
恰好有內核信息出現,心裏竊喜,不如就試試在這裏更改一下系統版本信息,再繼續往下看:
一口氣全改了就是了,大不了重裝系統了(前提當前服務器沒部署特別重要的服務,否則的話仍是要嚴謹些)。將上圖中紅框內的信息都改爲新版本 「3.10.0-957.1.3.el7.x86_64」 ,而後Ctrl-x,進入系統加載界面,瞬間心裏如釋重負。
等待系統啓動完成,趕忙登錄檢查一下狀態,一切正常!!!
實踐出真知!!!(PS:沒事不要瞎搞,搞以前必定要好好學習!!!)
發篇文檔裝B!!!