### Linux內核升級通常有兩種方式
? ?1. 下載新版內核到服務器上,進行編譯安裝,之后刪除老內核,優點是:可完全控制編譯項,缺點是:慢,且容易失敗;
? ?2. 采用yum 方式安裝,優點是:快捷方便,成功率高。
我這里采用第二種方式來安裝,畢竟網站還在使用,不能耽誤。采用yum安裝最多也就三五分鐘的事,萬一失敗,還能補救。
說明:以下步驟如未特殊聲明,均在 shell環境下執行命令行
一:導入key
```
rpm?--import?https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
```
二:安裝elrepo的yum源
```
rpm?-Uvh?http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
```
三:安裝內核(默認安裝最新穩定版本內核)
```
yum?--enablerepo=elrepo-kernel?install??kernel-ml-devel?kernel-ml
```
四:查看啟動順序
```
awk?-F\\'?'$1=="menuentry?"?{print?$2}'?/etc/grub2.cfg
```
新的內核版本默認會在最前面,下面將選擇系統啟動時的內核版本,順序為 0 。
五:選擇默認內核版本
```
grub2-set-default?0
```
六:重啟服務器,使之生效
```
reboot
```
七:驗證內核版本
```
uname -a
```
說明升級成功,檢查了下各部分,均無異常, good!
重新登陸了下服務器,使用漏洞檢測工具驗證,漏洞修復完成, 歷時20分鐘。
下面是整個升級命令行的執行過程
\[root@iZ23gbeynf2Z?~\]#?rpm?-qa?|?grep?kernel kernel-devel-3.10.0-693.21.1.el7.x86\_64 kernel-3.10.0-693.5.2.el7.x86\_64 kernel-3.10.0-693.2.2.el7.x86\_64 kernel-3.10.0-514.26.2.el7.x86\_64 kernel-3.10.0-693.17.1.el7.x86\_64 kernel-tools-libs-3.10.0-693.21.1.el7.x86\_64 kernel-headers-3.10.0-693.21.1.el7.x86\_64 kernel-ml-4.16.2-1.el7.elrepo.x86\_64 php-symfony-http-kernel-2.8.12-2.el7.noarch kernel-devel-3.10.0-693.5.2.el7.x86\_64 abrt-addon-kerneloops-2.1.11-48.el7.centos.x86\_64 kernel-devel-3.10.0-693.2.2.el7.x86\_64 kernel-3.10.0-693.21.1.el7.x86\_64 kernel-devel-3.10.0-514.26.2.el7.x86\_64 kernel-devel-3.10.0-693.17.1.el7.x86\_64 kernel-tools-3.10.0-693.21.1.el7.x86\_64 \[root@iZ23gbeynf2Z?~\]#?rpm?--import?https://www.elrepo.org/RPM-GPG-KEY-elrepo.org?? \[root@iZ23gbeynf2Z?~\]#?rpm?-Uvh?http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm?? Retrieving?http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm Retrieving?http://elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm Preparing...??????????????????????????#################################?\[100%\] ????package?elrepo-release-7.0-3.el7.elrepo.noarch?is?already?installed \[root@iZ23gbeynf2Z?~\]#?yum?--enablerepo=elrepo-kernel?install??kernel-ml-devel?kernel-ml?? Loaded?plugins:?langpacks Package?kernel-ml-4.16.2-1.el7.elrepo.x86\_64?already?installed?and?latest?version Resolving?Dependencies -->?Running?transaction?check --->?Package?kernel-ml-devel.x86\_64?0:4.16.2-1.el7.elrepo?will?be?installed -->?Finished?Dependency?Resolution ? Dependencies?Resolved ? =================================================================================================================================================================== ?Package?????????????????????????????????Arch???????????????????????????Version????????????????????????????????????????Repository?????????????????????????????Size =================================================================================================================================================================== Installing: ?kernel-ml-devel?????????????????????????x86\_64?????????????????????????4.16.2-1.el7.elrepo????????????????????????????elrepo-kernel??????????????????????????12?M ? Transaction?Summary =================================================================================================================================================================== Install??1?Package ? Total?download?size:?12?M Installed?size:?45?M Is?this?ok?\[y/d/N\]:?y Downloading?packages: kernel-ml-devel-4.16.2-1.el7.elrepo.x86\_64.rpm??????????????????????????????????????????????????????????????????????????????????????????????|??12?MB??00:00:04????? Running?transaction?check Running?transaction?test Transaction?test?succeeded Running?transaction ??Installing?:?kernel-ml-devel-4.16.2-1.el7.elrepo.x86\_64??????????????????????????????????????????????????????????????????????????????????????????????????????1/1? ??Verifying??:?kernel-ml-devel-4.16.2-1.el7.elrepo.x86\_64??????????????????????????????????????????????????????????????????????????????????????????????????????1/1? ? Installed: ??kernel-ml-devel.x86\_64?0:4.16.2-1.el7.elrepo????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ? Complete! \[root@iZ23gbeynf2Z?~\]#?awk?-F\\'?'$1=="menuentry?"?{print?$2}'?/etc/grub2.cfg?? CentOS?Linux?(4.16.2-1.el7.elrepo.x86\_64)?7?(Core) CentOS?Linux?(3.10.0-693.21.1.el7.x86\_64)?7?(Core) CentOS?Linux?(3.10.0-693.17.1.el7.x86\_64)?7?(Core) CentOS?Linux?(3.10.0-693.5.2.el7.x86\_64)?7?(Core) CentOS?Linux?(3.10.0-693.2.2.el7.x86\_64)?7?(Core) CentOS?Linux?(3.10.0-514.26.2.el7.x86\_64)?7?(Core) CentOS?Linux,?with?Linux?0-rescue-45461f76679f48ee96e95da6cc798cc8 \[root@iZ23gbeynf2Z?~\]#?grub2-set-default?0?? \[root@iZ23gbeynf2Z?~\]#?reboot ? Connection?closed?by?foreign?host.
```