centos7.9内核升级至5.17.6-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-1167

5.17.6-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 https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm

3. 载入elrepo-kernel元数据

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

4. 查看可用的rpm包

 

[root@localhost /]# yum --disablerepo=\* --enablerepo=elrepo-kernel list kernel*
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* elrepo-kernel: hkg.mirror.rackspace.com
Installed Packages
kernel.x86_64                           3.10.0-1160.el7                           @anaconda    
kernel-tools.x86_64                     3.10.0-1160.el7                           @anaconda    
kernel-tools-libs.x86_64                3.10.0-1160.el7                           @anaconda    
Available Packages
kernel-lt.x86_64                        5.4.192-1.el7.elrepo                     elrepo-kernel
kernel-lt-devel.x86_64                  5.4.192-1.el7.elrepo                     elrepo-kernel
kernel-lt-doc.noarch                    5.4.192-1.el7.elrepo                     elrepo-kernel
kernel-lt-headers.x86_64                5.4.192-1.el7.elrepo                     elrepo-kernel
kernel-lt-tools.x86_64                  5.4.192-1.el7.elrepo                     elrepo-kernel
kernel-lt-tools-libs.x86_64             5.4.192-1.el7.elrepo                     elrepo-kernel
kernel-lt-tools-libs-devel.x86_64       5.4.192-1.el7.elrepo                     elrepo-kernel
kernel-ml.x86_64                        5.17.6-1.el7.elrepo                     elrepo-kernel // 安装目标版本
kernel-ml-devel.x86_64                  5.17.6-1.el7.elrepo                     elrepo-kernel
kernel-ml-doc.noarch                    5.17.6-1.el7.elrepo                     elrepo-kernel
kernel-ml-headers.x86_64                5.17.6-1.el7.elrepo                     elrepo-kernel
kernel-ml-tools.x86_64                  5.17.6-1.el7.elrepo                     elrepo-kernel
kernel-ml-tools-libs.x86_64             5.17.6-1.el7.elrepo                     elrepo-kernel
kernel-ml-tools-libs-devel.x86_64       5.17.6-1.el7.elrepo                     elrepo-kernel

 

 

说明:

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

ml:mainline,主线版本;

5. 安装最新版本的kernel

[root@localhost /]# yum --disablerepo=\* --enablerepo=elrepo-kernel install kernel-ml.x86_64 -y

6. 删除旧版本工具包

[root@localhost /]# yum remove kernel-tools-libs.x86_64 kernel-tools.x86_64 -y

7. 安装新版本工具包

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

8. 查看内核插入顺序

[root@localhost /]# awk -F \' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
0 : CentOS Linux (5.17.6-1.el7.elrepo.x86_64) 7 (Core) 
1 : CentOS Linux (3.10.0-1160.el7.x86_64) 7 (Core) 
2 : CentOS Linux (0-rescue-60b32c6451fd42e6bb416810c9e8dbfd) 7 (Core)

说明:默认新内核是从头插入,默认启动顺序也是从0开始(当前顺序还未生效),或者使用:

[root@localhost /]# grep "^menuentry" /boot/grub2/grub.cfg | cut -d "'" -f2    //未使用

CentOS Linux (5.17.6-1.el7.elrepo.x86_64) 7 (Core) 
CentOS Linux (3.10.0-1160.el7.x86_64) 7 (Core) 
CentOS Linux (0-rescue-60b32c6451fd42e6bb416810c9e8dbfd) 7 (Core)

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

9. 查看当前实际启动顺序

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

10. 设置默认启动

[root@server-1 ~]# grub2-set-default 'CentOS Linux (5.17.6-1.el7.elrepo.x86_64) 7 (Core)'
[root@server-1 ~]# grub2-editenv list
saved_entry=CentOS Linux (5.17.6-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

 

 




最近在接触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-1167

5.17.6-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 https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm

3. 载入elrepo-kernel元数据

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

4. 查看可用的rpm包

 

[root@localhost /]# yum --disablerepo=\* --enablerepo=elrepo-kernel list kernel*
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* elrepo-kernel: hkg.mirror.rackspace.com
Installed Packages
kernel.x86_64                           3.10.0-1160.el7                           @anaconda    
kernel-tools.x86_64                     3.10.0-1160.el7                           @anaconda    
kernel-tools-libs.x86_64                3.10.0-1160.el7                           @anaconda    
Available Packages
kernel-lt.x86_64                        5.4.192-1.el7.elrepo                     elrepo-kernel
kernel-lt-devel.x86_64                  5.4.192-1.el7.elrepo                     elrepo-kernel
kernel-lt-doc.noarch                    5.4.192-1.el7.elrepo                     elrepo-kernel
kernel-lt-headers.x86_64                5.4.192-1.el7.elrepo                     elrepo-kernel
kernel-lt-tools.x86_64                  5.4.192-1.el7.elrepo                     elrepo-kernel
kernel-lt-tools-libs.x86_64             5.4.192-1.el7.elrepo                     elrepo-kernel
kernel-lt-tools-libs-devel.x86_64       5.4.192-1.el7.elrepo                     elrepo-kernel
kernel-ml.x86_64                        5.17.6-1.el7.elrepo                     elrepo-kernel // 安装目标版本
kernel-ml-devel.x86_64                  5.17.6-1.el7.elrepo                     elrepo-kernel
kernel-ml-doc.noarch                    5.17.6-1.el7.elrepo                     elrepo-kernel
kernel-ml-headers.x86_64                5.17.6-1.el7.elrepo                     elrepo-kernel
kernel-ml-tools.x86_64                  5.17.6-1.el7.elrepo                     elrepo-kernel
kernel-ml-tools-libs.x86_64             5.17.6-1.el7.elrepo                     elrepo-kernel
kernel-ml-tools-libs-devel.x86_64       5.17.6-1.el7.elrepo                     elrepo-kernel

 

 

说明:

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

ml:mainline,主线版本;

5. 安装最新版本的kernel

[root@localhost /]# yum --disablerepo=\* --enablerepo=elrepo-kernel install kernel-ml.x86_64 -y

6. 删除旧版本工具包

[root@localhost /]# yum remove kernel-tools-libs.x86_64 kernel-tools.x86_64 -y

7. 安装新版本工具包

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

8. 查看内核插入顺序

[root@localhost /]# awk -F \' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
0 : CentOS Linux (5.17.6-1.el7.elrepo.x86_64) 7 (Core) 
1 : CentOS Linux (3.10.0-1160.el7.x86_64) 7 (Core) 
2 : CentOS Linux (0-rescue-60b32c6451fd42e6bb416810c9e8dbfd) 7 (Core)

说明:默认新内核是从头插入,默认启动顺序也是从0开始(当前顺序还未生效),或者使用:

[root@localhost /]# grep "^menuentry" /boot/grub2/grub.cfg | cut -d "'" -f2    //未使用

CentOS Linux (5.17.6-1.el7.elrepo.x86_64) 7 (Core) 
CentOS Linux (3.10.0-1160.el7.x86_64) 7 (Core) 
CentOS Linux (0-rescue-60b32c6451fd42e6bb416810c9e8dbfd) 7 (Core)

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

9. 查看当前实际启动顺序

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

10. 设置默认启动

[root@server-1 ~]# grub2-set-default 'CentOS Linux (5.17.6-1.el7.elrepo.x86_64) 7 (Core)'
[root@server-1 ~]# grub2-editenv list
saved_entry=CentOS Linux (5.17.6-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