centos7.9內核升級至5.15.1-1.el7.elrepo.x86_64


應用背景

最近在接觸docker,其對內核版本要求較高,就連目前使用的centos7.x默認內核版本為3.10.0-xxx,也是剛好滿足其最低要求,故借此機會記錄一下升級內核的操作步驟。

 

測試環境:

系統 當前內核版本 小版本升級
CentOS 7.9 3.10.0-957 3.10.0-957.5.1

 

 

 

系統 當前內核版本 大版本升級
CentOS 7.9 3.10.0-957 5.15.1-1(目前最新)

 

 

 

操作步驟:

小版本升級

1. 查看當前和可升級版本

[root@server-1 ~]# yum list kernel Installed Packages kernel.x86_64 3.10.0-957.el7 @anaconda Available Packages kernel.x86_64 3.10.0-957.5.1.el7 updates 

2. 升級

 [root@server-1 ~]# yum update kernel -y 

3. 重啟並檢查

 [root@server-1 ~]# reboot   

 [root@server-1 ~]# uname -r

大版本升級

1. 載入公鑰

[root@server-1 ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

2. 升級安裝ELRepo

[root@server-1 ~]# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm

3. 載入elrepo-kernel元數據

[root@server-1 ~]# yum --disablerepo=\* --enablerepo=elrepo-kernel repolist

4. 查看可用的rpm包

復制代碼
[root@server-1 ~]# yum --disablerepo=\* --enablerepo=elrepo-kernel list kernel* Installed Packages kernel.x86_64 3.10.0-957.el7 @anaconda kernel.x86_64 3.10.0-957.5.1.el7 @updates kernel-tools.x86_64 3.10.0-957.el7 @anaconda kernel-tools-libs.x86_64 3.10.0-957.el7 @anaconda Available Packages kernel-lt.x86_64 4.4.176-1.el7.elrepo elrepo-kernel kernel-lt-devel.x86_64 4.4.176-1.el7.elrepo elrepo-kernel kernel-lt-doc.noarch 4.4.176-1.el7.elrepo elrepo-kernel kernel-lt-headers.x86_64 4.4.176-1.el7.elrepo elrepo-kernel kernel-lt-tools.x86_64 4.4.176-1.el7.elrepo elrepo-kernel kernel-lt-tools-libs.x86_64 4.4.176-1.el7.elrepo elrepo-kernel kernel-lt-tools-libs-devel.x86_64 4.4.176-1.el7.elrepo elrepo-kernel kernel-ml.x86_64 4.20.12-1.el7.elrepo elrepo-kernel // 安裝目標版本 kernel-ml-devel.x86_64 4.20.12-1.el7.elrepo elrepo-kernel kernel-ml-doc.noarch 4.20.12-1.el7.elrepo elrepo-kernel kernel-ml-headers.x86_64 4.20.12-1.el7.elrepo elrepo-kernel kernel-ml-tools.x86_64 4.20.12-1.el7.elrepo elrepo-kernel kernel-ml-tools-libs.x86_64 4.20.12-1.el7.elrepo elrepo-kernel kernel-ml-tools-libs-devel.x86_64 4.20.12-1.el7.elrepo elrepo-kernel
復制代碼

說明:

lt  :long term support,長期支持版本;

ml:mainline,主線版本;

5. 安裝最新版本的kernel

[root@server-1 ~]# yum --disablerepo=\* --enablerepo=elrepo-kernel install kernel-ml.x86_64 -y

6. 刪除舊版本工具包

[root@server-1 ~]# yum remove kernel-tools-libs.x86_64 kernel-tools.x86_64 -y

7. 安裝新版本工具包

[root@server-1 ~]# yum --disablerepo=\* --enablerepo=elrepo-kernel install kernel-ml-tools.x86_64 -y

8. 查看內核插入順序

[root@server-1 ~]# awk -F \' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg 0 : CentOS Linux (4.20.12-1.el7.elrepo.x86_64) 7 (Core) 1 : CentOS Linux (3.10.0-957.5.1.el7.x86_64) 7 (Core) 2 : CentOS Linux (3.10.0-957.el7.x86_64) 7 (Core) 3 : CentOS Linux (0-rescue-ca0f6fb3c5f24478abc0a2e275281d7a) 7 (Core)

說明:默認新內核是從頭插入,默認啟動順序也是從0開始(當前順序還未生效),或者使用:

[root@server-17 ~]# grep "^menuentry" /boot/grub2/grub.cfg | cut -d "'" -f2 CentOS Linux (4.20.12-1.el7.elrepo.x86_64) 7 (Core) CentOS Linux (3.10.0-957.5.1.el7.x86_64) 7 (Core) CentOS Linux (3.10.0-957.el7.x86_64) 7 (Core) CentOS Linux (0-rescue-ca0f6fb3c5f24478abc0a2e275281d7a) 7 (Core)

其中文件 /etc/grub2.cfg 和 /boot/grub2/grub.cfg 內容一致。

9. 查看當前實際啟動順序

[root@server-1 ~]# grub2-editenv list saved_entry=CentOS Linux (3.10.0-957.5.1.el7.x86_64) 7 (Core)

10. 設置默認啟動

[root@server-1 ~]# grub2-set-default 'CentOS Linux (4.20.12-1.el7.elrepo.x86_64) 7 (Core)' [root@server-1 ~]# grub2-editenv list saved_entry=CentOS Linux (4.20.12-1.el7.elrepo.x86_64) 7 (Core)

或者直接設置數值

[root@server-1 ~]# grub2-set-default 0  // 0代表當前第一行,也就是上面的4.20.12版本那一行內容 [root@server-1 ~]# grub2-editenv list saved_entry=0

11. 重啟並檢查

 [root@server-1 ~]# reboot 

 [root@server-1 ~]# uname -r


免責聲明!

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



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