Centos7 內核從3.10升級到4.12過程

近期,國家互聯網應急中心漏洞(CNCERT)公告中提到Linux kernel4個拒絕服務漏洞,對應CNVD-2017-07509、CNVD-2017-07508、CNVD-2017-07507、CNVD-2017-07386)。綜合利用上述漏洞,攻擊者可使系統拒絕服務,且在符合一定利用條件下可能導致遠程命令執行。設計到的內核版本從3.0到4.99,詳細信息可以到國家互聯網應急中心官網公告查看,隨後官方給出了代碼修復,用戶重新編譯內核到最新即可解決此次漏洞。

 

www.kernel.org內核官網下載4.12-RC5內核包


接下來我把自己虛擬機3.0內核升級到4.12


wgethttps://git.kernel.org/torvalds/t/linux-4.12-rc5.tar.gz --no-check-certificate

這裏使用Xshell通過ssh連接虛擬機。官網是https協議傳輸,使用wget下載時容易報錯,在最後加  --no-check-certificate 參數即可解決。


使用tar –xvf解壓到本地


安裝系統時選擇的是最小安裝法,導致還會有一些基本的工具沒裝,這裏使用

yum grouplist去檢測程序所有安裝包情況

這裏使用yum groupinstall Development tools安裝開發工具,這是一個包含衆多小工具例如:binutils、bison、flex、gcc、gcc-c++、gettext、libtool等等,以避免後面對內核進行編譯時出現錯誤。這是已經安裝後的。

 

 

yum install hmaccalc zlib-develbinutils-devel elfutils-libelf-devel

來安裝其它依賴工具,我這是已經安裝過後。如果提示要安裝,安裝即可。

 

開始準備編譯內核

make mrproper 刪除不必要的文件和目錄。

把舊版本內核的配置文件複製並命名爲.config,這樣新編譯內核就會使用原來的配置文件


make  bzImage  開始編譯,一路回車

 

解決報錯:

yum install openssl  


yum install openssl-devel


make   編譯,需要較長時間


make modules文件編碼模塊,也需要等待較長一段時間


make modules_install  安裝模塊


make install


我們知道,centos 6.x是通過/etc/grub.conf就行內核啓動順序修改的,而且比較直觀查看。但centos 7的系統和6就不一樣了,是通過grub2爲引導程序。下邊簡單說下centos 7的內核啓動順序如何修改。
1,首先查看當前系統有幾個內核。比如:

cat /boot/grub2/grub.cfg |grep menuentry


2,設置默認的啓動內核,選擇CentOS Linux (4.12.0-rc5)7 (Core)這個內核爲默認啓動。

grub2-set-default "CentOS Linux (3.10.0-327.el7.x86_64)7 (Core)


驗證是否修改成功:grub2-editenv list


3,重啓機器觀察。
重啓成功以後查看下機器的內核是不是該內核:

在虛擬機啓動的時候出現多個內核引導項,選第一個進入系統


進入系統後查看內核版本,成功升級成4.12




2017.6.19 雨

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章