CentOS 7/6系統升級內核版本到5.2.2


由於公司服務器新業務需要,需要將CentOS 7系統的內核(3.10.0-229)進行升級。

關於內核版本的定義:
版本性質:主分支ml(mainline),穩定版(stable),長期維護版lt(longterm)
版本命名格式為 “A.B.C”:
數字 A 是內核版本號:版本號只有在代碼和內核的概念有重大改變的時候才會改變,歷史上有兩次變化:
第一次是1994年的 1.0 版,第二次是1996年的 2.0 版,第三次是2011年的 3.0 版發布,但這次在內核的概念上並沒有發生大的變化
數字 B 是內核主版本號:主版本號根據傳統的奇-偶系統版本編號來分配:奇數為開發版,偶數為穩定版
數字 C 是內核次版本號:次版本號是無論在內核增加安全補丁、修復bug、實現新的特性或者驅動時都會改變

1 查看系統內核版本

[root@vvuv0394 ~]# cat /etc/redhat-release 
CentOS Linux release 7.2.1511 (Core) 
[root@vvuv0394 ~]# uname -r
3.10.0-327.el7.x86_64

2 在升級內核之前,先升級軟件包(非必要)

yum update -y

3 升級內核

CentOS 6 和CentOS 7的升級方法類似,只不過選擇的yum源或者rpm包不同而已,下面僅記錄CentOS7升級的詳細過程

方法一:添加第三方yum源進行下載安裝。
Centos 6 YUM源:http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm
Centos 7 YUM源:http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

先導入elrepo的key,然后安裝elrepo的yum源:

rpm -import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

倉庫啟用后,你可以使用下面的命令列出可用的內核相關包,如下圖:

yum --disablerepo="*" --enablerepo="elrepo-kernel" list available

上圖可以看到,長期維護版本lt為4.4,最新主線穩定版ml為5.2.2,接下來使用命令安裝最新穩定內核

yum -y --enablerepo=elrepo-kernel install kernel-ml

方法二:通過下載kernel image的rpm包進行安裝。
下載地址:

官方 Centos 6: http://elrepo.org/linux/kernel/el6/x86_64/RPMS/

官方 Centos 7: http://elrepo.org/linux/kernel/el7/x86_64/RPMS/

獲取下載鏈接進行下載安裝即可

wget https://elrepo.org/linux/kernel/el7/x86_64/RPMS/kernel-lt-4.4.185-1.el7.elrepo.x86_64.rpm

rpm -ivh kernel-lt-4.4.185-1.el7.elrepo.x86_64.rpm

 

方法三:通過源碼包編譯安裝.

這種方式可定制性強,但也比較復雜,有需要的可自行查找資料安裝,下面只給出各系統版本內核源碼包的下載地址:

https://www.kernel.org/pub/linux/kernel/

4 修改grub中默認的內核版本

方法一
內核升級完畢后,目前內核還是默認的版本,如果此時直接執行reboot命令,重啟后使用的內核版本還是默認的3.10,不會使用新的5.2.2,首先,我們可以通過命令查看默認啟動順序

[root@localhost ~]# awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg
CentOS Linux (5.2.2-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (4.4.182-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-957.21.3.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-957.10.1.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-327.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-e34fb4f1527b4f2d9fc75b77c016b6e7) 7 (Core)

由上面可以看出新內核(5.2.2)目前位置在0,原來的內核(3.10.0)目前位置在2,所以如果想生效最新的內核,還需要我們修改內核的啟動順序為0:

vim /etc/default/grub

GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=0
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet"
GRUB_DISABLE_RECOVERY="true"

注:Centos 6 更改的文件相同,使用命令確定新內核位置后,然后將參數default更改為0即可。

接着運行grub2-mkconfig命令來重新創建內核配置,如下:

grub2-mkconfig -o /boot/grub2/grub.cfg

5 重啟系統並查看系統內核

reboot
[root@localhost ~]# uname -r
5.2.2-1.el7.elrepo.x86_64

到此,內核升級完畢。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM