使用ELRepo升级CentOS内核

Posted 陌上荼靡

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用ELRepo升级CentOS内核相关的知识,希望对你有一定的参考价值。

在腾讯云中部署了一些服务器,操作系统使用的是CentOS 7.6,但是其默认内核版本较低,现使用ELRepo对CentOS的内核进行升级。

操作环境

服务器:腾讯云轻量应用服务器
操作系统:CentOS 7.6
当前内核版本:3.10.0-1160.45.1
目标内核版本:5.4.233-1

首先查看当前系统的内核版本

uname -rs

可以看到内核版本为3.10.0-1160.45.1

Linux 3.10.0-1160.45.1.el7.x86_64

当前的内核版本实在是太古老了,这里我们使用ELRepo进行内核升级,速度快,操作简单

以下是ELRepo官网地址: https://elrepo.org/

现在让我们开始升级内核吧

首先导入ELRepo仓库的公钥信息

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

导入成功后开始安装ELRepo

以下是RHEL-7, SL-7 or CentOS-7系统的安装指令

yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm

如果你是RHEL-8或者RHEL-9可以参考以下命令

# RHEL-8
yum install https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm

# RHEL-9
yum install https://www.elrepo.org/elrepo-release-9.el9.elrepo.noarch.rpm

安装完成后,我们查看当前可用的内核发行版本

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

其中主要有两个版本,kernel-lt代表long term support版本,kernel-ml表示mainline stable版本,为了保证系统的安全和稳定性,我们这里使用kernel-lt作为升级版本

Loaded plugins: fastestmirror, langpacks
Repository epel is listed more than once in the configuration
Loading mirror speeds from cached hostfile
 * elrepo-kernel: mirrors.tuna.tsinghua.edu.cn
Available Packages
kernel-lt-devel.x86_64                                               5.4.233-1.el7.elrepo                                     elrepo-kernel
kernel-lt-doc.noarch                                                 5.4.233-1.el7.elrepo                                     elrepo-kernel
kernel-lt-headers.x86_64                                             5.4.233-1.el7.elrepo                                     elrepo-kernel
kernel-lt-tools.x86_64                                               5.4.233-1.el7.elrepo                                     elrepo-kernel
kernel-lt-tools-libs.x86_64                                          5.4.233-1.el7.elrepo                                     elrepo-kernel
kernel-lt-tools-libs-devel.x86_64                                    5.4.233-1.el7.elrepo                                     elrepo-kernel
kernel-ml.x86_64                                                     6.2.1-1.el7.elrepo                                       elrepo-kernel
kernel-ml-devel.x86_64                                               6.2.1-1.el7.elrepo                                       elrepo-kernel
kernel-ml-doc.noarch                                                 6.2.1-1.el7.elrepo                                       elrepo-kernel
kernel-ml-headers.x86_64                                             6.2.1-1.el7.elrepo                                       elrepo-kernel
kernel-ml-tools.x86_64                                               6.2.1-1.el7.elrepo                                       elrepo-kernel
kernel-ml-tools-libs.x86_64                                          6.2.1-1.el7.elrepo                                       elrepo-kernel
kernel-ml-tools-libs-devel.x86_64                                    6.2.1-1.el7.elrepo                                       elrepo-kernel
perf.x86_64                                                          5.4.233-1.el7.elrepo                                     elrepo-kernel

开始安装长期支持版本kernel-lt

yum --enablerepo=elrepo-kernel install kernel-lt

安装完毕后,查看一下系统中已完成的kernel信息

grubby --info=ALL | grep ^kernel

可以看到kernel-lt的最新版本5.4.233-1已经安装成功了

kernel=/boot/vmlinuz-0-rescue-3d0df1c5536b40eba1b845d007ce1f87
kernel=/boot/vmlinuz-5.4.233-1.el7.elrepo.x86_64
kernel=/boot/vmlinuz-3.10.0-1160.45.1.el7.x86_64
kernel=/boot/vmlinuz-0-rescue-21acf41b46a64ca4a55e93cb350a7749

查看一下当前系统的默认内核

grubby --default-kernel

可以看到当前默认内核依旧为3.10.0-1160.45.1

/boot/vmlinuz-3.10.0-1160.45.1.el7.x86_64

修改系统的默认内核为我们新安装的内核版本

grubby --set-default "/boot/vmlinuz-5.4.233-1.el7.elrepo.x86_64"

重启系统,使内核生效

reboot

重启成功之后再次查看当前系统信息

uname -rs

可以看到当前我们使用的是新安装的内核了

Linux 5.4.233-1.el7.elrepo.x86_64

为了节省空间,我们可以按需移除老的内核

查看已安装的内核

rpm -qa | grep kernel

可以看到我们新老内核的信息,以及一些内核开发包

kernel-tools-3.10.0-1160.45.1.el7.x86_64
kernel-devel-3.10.0-1160.45.1.el7.x86_64
abrt-addon-kerneloops-2.1.11-60.el7.centos.x86_64
kernel-headers-3.10.0-1160.45.1.el7.x86_64
kernel-3.10.0-1160.45.1.el7.x86_64
kernel-lt-5.4.233-1.el7.elrepo.x86_64
kernel-tools-libs-3.10.0-1160.45.1.el7.x86_64
kernel-mft-4.15.1-100.kver.3.10.0_1160.45.1.el7.x86_64.x86_64

卸载老的内核信息,注意不要把新的内核也移除了

yum remove kernel-3.10.0-1160.45.1.el7.x86_64 \\
  kernel-tools-3.10.0-1160.45.1.el7.x86_64 \\
  kernel-devel-3.10.0-1160.45.1.el7.x86_64 \\
  kernel-headers-3.10.0-1160.45.1.el7.x86_64 \\
  kernel-tools-libs-3.10.0-1160.45.1.el7.x86_64

最后如有有需要的话,可以更新一下系统里的软件包

# yum update
yum --enablerepo=elrepo-kernel update

到此内核就升级完成了,整个过程还是相当顺畅的,不过下载新内核的时候可能网速比较慢,如果发生失败可以多试几次或者使用国内的镜像源来提速。

以上是关于使用ELRepo升级CentOS内核的主要内容,如果未能解决你的问题,请参考以下文章

CentOS7 升级内核

升级centos7的内核版本

Centos7升级新内核

CentOS 7 升级内核

centos6.5升级内核版本

centos6.5 升级内核