CentOS升级内核版本_linux升级内核版本_Redhat升级内核版本

CentOS 7.x 系统自带的 3.10.x 内核存在一些 Bugs,导致运行的 Docker、Kubernetes 不稳定
我们使用ELRepo做内核升级,这是用于Enterprise Linux软件包的RPM存储库。ELRepo支持Red Hat Enterprise Linux(RHEL)及其衍生版本(Scientific Linux,CentOS等)。
ELRepo项目专注于与硬件相关的软件包,以增强您使用Enterprise Linux的体验。这包括文件系统驱动程序,图形驱动程序,网络驱动程序,声音驱动程序,网络摄像头和视频驱动程序。

安装yum源


导入公钥:
[root@localhost yum.repos.d]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

服务器没有联网的情况下,可以把公钥文件下载下来,传到服务器上执行

[root@localhost yum.repos.d]# rpm --import RPM-GPG-KEY-elrepo.org
[root@localhost yum.repos.d]# cat /etc/pki/rpm-gpg/RPM-GPG-KEY-elrepo.org 
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.5 (GNU/Linux)

mQGiBEm+/6QRBAC5mbtqOFSQ0FkTLIMdIoqxtraIeUqwbPp3IBYQ/u/EREjyEf1D
qFyBEXII0dD8JDT85vRZ81jhB7nFWa0VbUfY0xfghkbnokiNBVNpiQcvszw3UYDF
aLAaOC8Z98vmlsQaBBTQG6704ZXLr7FJyG3GP5WE6egXIQQbrMcdmCoRBwCg/dwC
HLWjuemoDc5SX7hKHbB4zZ8D/jP+oMbqz+bDn8OZ2UuaGdxr+mHW8tzTdPjnEU8e
hUt1ws8eBqn/gMfKvUBa8xFSILe8Ty99u+VjFbcRsdf0H6dRre9AdDVUz5oxzoPw
gamA8mhPQvFh3wt9smtRUh5IoM2LiM1s5pGMLuYuvSnVUPArEnSfW6K5I6v7OarU
3WfrBACDEGGcaWKjfdkRtmKIQrzu6AnldVC1ISLVAoqxHnKNFTk1BgO0PSZDpfJI
x8fMCnGlusoL6F5+LYEk4K4B0zvlj1ur3JocjxpuBLccl94JTo/+I9ZbS8ptUqLw
LBUkgIQJzzIH4G5NZsQ3FpzSWGRFVa7etqTv9BfUMUmJxhEoobQ/ZWxyZXBvLm9y
ZyAoUlBNIFNpZ25pbmcgS2V5IGZvciBlbHJlcG8ub3JnKSA8c2VjdXJlQGVscmVw
by5vcmc+iGAEExECACAFAkm+/6QCGwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAK
CRAwm8MFuq2uUlgWAKCGWOpyodbzxS7Xy/0X9m9qVnHq+ACfUHrQzYAtFRpT07Sg
giosE+mvAKu5Ag0ESb7/pxAIALgT0q0HhwugE717a7N+gAtCbFu8pCXOZcrAnJpG
cMA9VWmsODZStPTxXYM2ggCMSzUnNis8pPZOPIP5C+t2IYtVjLshM4C9UiY7u5ET
jErWCxWmF+2QLO50K56E4qxj0wufZt9P+Ih0USUM5L2oyrQG51uj/2v3Qq3igc8Z
NTtmEOfis3losusQbAfZtTBmNQ0570kkhMxiyavgAUxLenXHYrkDJFuL7XdBCmna
kykTn2dzU81rIDZ+QPxII4V/eZ5xGiRY/EDUIAysEV2m0NNZgWi/twUnZICm7zYp
VRviJrBnFTvNEPMhiGRnJgQp/Krv4WIHQ67N8lQg3q5RJX8AAwUH/0UBjBgbsuWR
dB+ZYWjKPBy+bJY/6HefPUuLrt3QDNINMW8kY7VzWRMWyGc4IlPJDW0nwOn/vT5H
Dgc3YmA3tm7cKj5wpFijzff61Db8eq+CUKGscKxDBGzHq6oirM5U7DQLmipCs5Eb
efwHIjE3aOUSnoQmniEnBWI2hm/rftmY9oJSi8xgns4wAokDPiMcucADtbV3fznx
ppuowtBi8bcGB1vJZjTySQcSKWv+IVp5ej06uZ9501BEm6HxUZkuAGPecP65kcQu
5bg7B7LQeI5AWyujqvfuWgAF34xhl9QU/sDWxM3wUog+bw7y8pyWCqnJhp70yx8o
SqzhFygT62eISQQYEQIACQUCSb7/pwIbDAAKCRAwm8MFuq2uUq8PAKC1+E2pSwiS
oHXkKYPYDwApsP1mVACfRe1YnggLYQtG9LMeweVQQC77rK8=
=qyRr
-----END PGP PUBLIC KEY BLOCK-----

安装ELRepo Yum源
  • 系统版本 RHEL-8 or CentOS-8 请安装
yum install https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm
  • 系统版本 RHEL-7, SL-7 or CentOS-7 请安装
yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm

安装Linux内核


查找可供安装的内核版本
[root@localhost yum.repos.d]# yum --disablerepo=\* --enablerepo=elrepo-kernel list kernel*
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * elrepo-kernel: mirrors.tuna.tsinghua.edu.cn
已安装的软件包
kernel.x86_64                                                                                  3.10.0-1160.el7                                                                   @anaconda     
kernel-headers.x86_64                                                                          3.10.0-1160.15.2.el7                                                              @updates      
kernel-lt.x86_64                                                                               5.4.109-1.el7.elrepo                                                              @elrepo-kernel
kernel-tools.x86_64                                                                            3.10.0-1160.el7                                                                   @anaconda     
kernel-tools-libs.x86_64                                                                       3.10.0-1160.el7                                                                   @anaconda     
可安装的软件包
kernel-lt.x86_64                                                                               5.4.110-1.el7.elrepo                                                              elrepo-kernel 
kernel-lt-devel.x86_64                                                                         5.4.110-1.el7.elrepo                                                              elrepo-kernel 
kernel-lt-doc.noarch                                                                           5.4.110-1.el7.elrepo                                                              elrepo-kernel 
kernel-lt-headers.x86_64                                                                       5.4.110-1.el7.elrepo                                                              elrepo-kernel 
kernel-lt-tools.x86_64                                                                         5.4.110-1.el7.elrepo                                                              elrepo-kernel 
kernel-lt-tools-libs.x86_64                                                                    5.4.110-1.el7.elrepo                                                              elrepo-kernel 
kernel-lt-tools-libs-devel.x86_64                                                              5.4.110-1.el7.elrepo                                                              elrepo-kernel 
kernel-ml.x86_64                                                                               5.11.12-1.el7.elrepo                                                              elrepo-kernel 
kernel-ml-devel.x86_64                                                                         5.11.12-1.el7.elrepo                                                              elrepo-kernel 
kernel-ml-doc.noarch                                                                           5.11.12-1.el7.elrepo                                                              elrepo-kernel 
kernel-ml-headers.x86_64                                                                       5.11.12-1.el7.elrepo                                                              elrepo-kernel 
kernel-ml-tools.x86_64                                                                         5.11.12-1.el7.elrepo                                                              elrepo-kernel 
kernel-ml-tools-libs.x86_64                                                                    5.11.12-1.el7.elrepo                                                              elrepo-kernel 
kernel-ml-tools-libs-devel.x86_64                                                              5.11.12-1.el7.elrepo                                                              elrepo-kernel 

这里的kernel-lt,kernel-ml解释一下

  • kernel-ml 中的ml是英文【mainline stable】的缩写,elrepo-kernel中罗列出来的是最新的稳定主线版本。
  • kernel-lt 中的lt是英文【long term support】的缩写,elrepo-kernel中罗列出来的长期支持版本。

不联网离线的情况下,找一台能上网上服务器,或者本地安装虚拟机下载离线安装包

下载地址:https://elrepo.org/linux/kernel/

[root@localhost ~]# wget https://elrepo.org/linux/kernel/el7/x86_64/RPMS/kernel-lt-5.4.110-1.el7.elrepo.x86_64.rpm
--2021-04-09 18:56:54--  https://elrepo.org/linux/kernel/el7/x86_64/RPMS/kernel-lt-5.4.110-1.el7.elrepo.x86_64.rpm
正在解析主机 elrepo.org (elrepo.org)... 69.195.83.87
正在连接 elrepo.org (elrepo.org)|69.195.83.87|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:52405420 (50M)
正在保存至: “kernel-lt-5.4.110-1.el7.elrepo.x86_64.rpm”

100%[=====================================================================================================================================================>] 52,405,420  4.87MB/s 用时 31s    

2021-04-09 18:57:25 (1.63 MB/s) - 已保存 “kernel-lt-5.4.110-1.el7.elrepo.x86_64.rpm” [52405420/52405420])

[root@localhost ~]# 

安装内核
[root@localhost yum.repos.d]# yum --enablerepo=elrepo-kernel install -y kernel-lt
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * elrepo: mirrors.neusoft.edu.cn
 * elrepo-kernel: mirrors.neusoft.edu.cn
file:///yumrepo/repodata/repomd.xml: [Errno 14] curl#37 - "Couldn't open file /yumrepo/repodata/repomd.xml"
正在尝试其它镜像。
正在解决依赖关系
--> 正在检查事务
---> 软件包 kernel-lt.x86_64.0.5.4.110-1.el7.elrepo 将被 安装
--> 解决依赖关系完成

依赖关系解决

===============================================================================================================================================================================================
 Package                                    架构                                    版本                                                  源                                              大小
===============================================================================================================================================================================================
正在安装:
 kernel-lt                                  x86_64                                  5.4.110-1.el7.elrepo                                  elrepo-kernel                                   50 M

事务概要
===============================================================================================================================================================================================
安装  1 软件包

总下载量:50 M
安装大小:227 M
Downloading packages:
kernel-lt-5.4.110-1.el7.elrepo.x86_64.rpm                                                                                                                               |  50 MB  00:00:44     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
警告:RPM 数据库已被非 yum 程序修改。
  正在安装    : kernel-lt-5.4.110-1.el7.elrepo.x86_64                                                                                                                                      1/1 
  验证中      : kernel-lt-5.4.110-1.el7.elrepo.x86_64                                                                                                                                      1/1 

已安装:
  kernel-lt.x86_64 0:5.4.110-1.el7.elrepo                                                                                                                                                      

完毕!
[root@localhost yum.repos.d]# 

上面下载好了安装包,也可以离线安装

[root@localhost ~]# yum localinstall kernel-lt-5.4.110-1.el7.elrepo.x86_64.rpm 
已加载插件:fastestmirror, product-id, search-disabled-repos
正在检查 kernel-lt-5.4.110-1.el7.elrepo.x86_64.rpm: kernel-lt-5.4.110-1.el7.elrepo.x86_64
kernel-lt-5.4.110-1.el7.elrepo.x86_64.rpm 将被安装
正在解决依赖关系
--> 正在检查事务
---> 软件包 kernel-lt.x86_64.0.5.4.110-1.el7.elrepo 将被 安装
--> 解决依赖关系完成

依赖关系解决

===============================================================================================================================================================================================
 Package                             架构                             版本                                              源                                                                大小
===============================================================================================================================================================================================
正在安装:
 kernel-lt                           x86_64                           5.4.110-1.el7.elrepo                              /kernel-lt-5.4.110-1.el7.elrepo.x86_64                           227 M

事务概要
===============================================================================================================================================================================================
安装  1 软件包

总计:227 M
安装大小:227 M
Is this ok [y/d/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安装    : kernel-lt-5.4.110-1.el7.elrepo.x86_64                                                                                                                                      1/1 
  验证中      : kernel-lt-5.4.110-1.el7.elrepo.x86_64                                                                                                                                      1/1 

已安装:
  kernel-lt.x86_64 0:5.4.110-1.el7.elrepo                                                                                                                                                      

完毕!

检查内核是否已安装


[root@localhost ~]#  grep ^menuentry /boot/grub2/grub.cfg | cut -d "'" -f2
CentOS Linux (5.4.110-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (5.4.109-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-1160.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-002e2c6979394d74a83b99811a2280c1) 7 (Core)

参考上面配置 kernel-lt-5.4.110-1 已经成功安装

设置系统内核默认启动项


查看系统内核默认启动项
[root@localhost ~]# grub2-editenv list
saved_entry=CentOS Linux (5.4.109-1.el7.elrepo.x86_64) 7 (Core)
修改系统内核启动项
[root@localhost ~]# grub2-set-default 'CentOS Linux (5.4.110-1.el7.elrepo.x86_64) 7 (Core)'
[root@localhost ~]# grub2-editenv list
saved_entry=CentOS Linux (5.4.110-1.el7.elrepo.x86_64) 7 (Core)

参考上面输出内容 此时,操作系统使用的内核已升级为5.4.110-1.el7.elrepo.x86_64

最后一步,需要将内核工具包一并升级


删除旧版本工具包
[root@localhost ~]# yum remove kernel-tools-libs
已加载插件:fastestmirror
正在解决依赖关系
--> 正在检查事务
---> 软件包 kernel-tools-libs.x86_64.0.3.10.0-1160.el7 将被 删除
--> 正在处理依赖关系 kernel-tools-libs = 3.10.0-1160.el7,它被软件包 kernel-tools-3.10.0-1160.el7.x86_64 需要
--> 正在处理依赖关系 libcpupower.so.0()(64bit),它被软件包 kernel-tools-3.10.0-1160.el7.x86_64 需要
--> 正在检查事务
---> 软件包 kernel-tools.x86_64.0.3.10.0-1160.el7 将被 删除
--> 解决依赖关系完成

依赖关系解决

===============================================================================================================================================================================================
 Package                                            架构                                    版本                                              源                                          大小
===============================================================================================================================================================================================
正在删除:
 kernel-tools-libs                                  x86_64                                  3.10.0-1160.el7                                   @anaconda                                   18 k
为依赖而移除:
 kernel-tools                                       x86_64                                  3.10.0-1160.el7                                   @anaconda                                  337 k

事务概要
===============================================================================================================================================================================================
移除  1 软件包 (+1 依赖软件包)

安装大小:355 k
是否继续?[y/N]:y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在删除    : kernel-tools-3.10.0-1160.el7.x86_64                                                                                                                                        1/2 
  正在删除    : kernel-tools-libs-3.10.0-1160.el7.x86_64                                                                                                                                   2/2 
  验证中      : kernel-tools-3.10.0-1160.el7.x86_64                                                                                                                                        1/2 
  验证中      : kernel-tools-libs-3.10.0-1160.el7.x86_64                                                                                                                                   2/2 

删除:
  kernel-tools-libs.x86_64 0:3.10.0-1160.el7                                                                                                                                                   

作为依赖被删除:
  kernel-tools.x86_64 0:3.10.0-1160.el7                                                                                                                                                        

完毕!
[root@localhost ~]# 

安装新版本工具包
[root@localhost ~]# yum --disablerepo=\* --enablerepo=elrepo-kernel install -y kernel-lt-tools
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * elrepo-kernel: mirror-hk.koddos.net
正在解决依赖关系
--> 正在检查事务
---> 软件包 kernel-lt-tools.x86_64.0.5.4.110-1.el7.elrepo 将被 安装
--> 正在处理依赖关系 kernel-lt-tools-libs = 5.4.110-1.el7.elrepo,它被软件包 kernel-lt-tools-5.4.110-1.el7.elrepo.x86_64 需要
--> 正在处理依赖关系 libcpupower.so.0()(64bit),它被软件包 kernel-lt-tools-5.4.110-1.el7.elrepo.x86_64 需要
--> 正在检查事务
---> 软件包 kernel-lt-tools-libs.x86_64.0.5.4.110-1.el7.elrepo 将被 安装
--> 解决依赖关系完成

依赖关系解决

===============================================================================================================================================================================================
 Package                                            架构                                 版本                                                源                                           大小
===============================================================================================================================================================================================
正在安装:
 kernel-lt-tools                                    x86_64                               5.4.110-1.el7.elrepo                                elrepo-kernel                               202 k
为依赖而安装:
 kernel-lt-tools-libs                               x86_64                               5.4.110-1.el7.elrepo                                elrepo-kernel                                91 k

事务概要
===============================================================================================================================================================================================
安装  1 软件包 (+1 依赖软件包)

总下载量:293 k
安装大小:486 k
Downloading packages:
(1/2): kernel-lt-tools-5.4.110-1.el7.elrepo.x86_64.rpm                                                                                                                  | 202 kB  00:00:00     
(2/2): kernel-lt-tools-libs-5.4.110-1.el7.elrepo.x86_64.rpm                                                                                                             |  91 kB  00:00:00     
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
总计                                                                                                                                                           312 kB/s | 293 kB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安装    : kernel-lt-tools-libs-5.4.110-1.el7.elrepo.x86_64                                                                                                                           1/2 
  正在安装    : kernel-lt-tools-5.4.110-1.el7.elrepo.x86_64                                                                                                                                2/2 
  验证中      : kernel-lt-tools-5.4.110-1.el7.elrepo.x86_64                                                                                                                                1/2 
  验证中      : kernel-lt-tools-libs-5.4.110-1.el7.elrepo.x86_64                                                                                                                           2/2 

已安装:
  kernel-lt-tools.x86_64 0:5.4.110-1.el7.elrepo                                                                                                                                                

作为依赖被安装:
  kernel-lt-tools-libs.x86_64 0:5.4.110-1.el7.elrepo                                                                                                                                           

完毕!

重启,选择新版本内核进入系统

启动成功查看内核版本
[root@localhost ~]# grub2-editenv list
saved_entry=CentOS Linux (5.4.110-1.el7.elrepo.x86_64) 7 (Core)

已上就是升级内核版本过程,觉得有用就给个赞吧

版权声明:本文为作者原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原创文章,作者:老C,如若转载,请注明出处:https://www.code404.icu/240.html

发表评论

登录后才能评论