之前我写过在 CentOS 7 上升级内核,但是在 CentOS 8 上有些操作已经不适用了,所以我又整理一下 CentOS 8 上的版本。
第一步:升级系统软件
作为常规操作,第一步肯定是要先升级一下系统的原有软件,因为后续可能有些步骤可能会依赖于一些已经安装的软件,减少后续的麻烦,所以需要执行一下升级操作:
[root@liqiang.io]# sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
[root@liqiang.io]# sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
[root@liqiang.io]# dnf update -y
第二步:添加 elrepo 源
要升级内核,肯定要有源,这里我使用的是 elrepo 源,通过以下步骤添加:
添加 elrepo 的源
[root@liqiang.io]# yum install https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm
添加 elrepo 的 gpg key
[root@liqiang.io]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
查看是否添加成功
[root@liqiang.io]# yum repolist | grep elre
elrepo ELRepo.org Community Enterprise Linux Repository - el8
看到这些的时候就 OK 了。
第三步:安装新内核
现在可以开始安装新的内核了,为了其他源的影响,在使用的时候需要指定一下源:
[root@liqiang.io]# dnf --enablerepo="elrepo-kernel" install kernel-lt-5.4.228-1.el8.elrepo.x86_64
安装完毕之后就可以了。
第四步:设置 grub2
在第三步我已经安装好了新的内核,现在可以查看一下系统中的所有内核,这个步骤和 CentOS 7 的有些不一样(但是我没有很认真地去了解为啥不一样):
[root@liqiang.io]# grubby --info=ALL | grep ^kernel
kernel="/boot/vmlinuz-4.18.0-240.1.1.el8_3.x86_64"
kernel="/boot/vmlinuz-5.4.228-1.el8.elrepo.x86_64"
kernel="/boot/vmlinuz-4.18.0-348.7.1.el8_5.x86_64"
[root@liqiang.io]# grubby --default-kernel
/boot/vmlinuz-5.4.228-1.el8.elrepo.x86_64
我这里已经设置了新的内核为默认启动的,你如果按照这个步骤安装发现新的内核不是默认的,那么需要以这个步骤设置:
[root@liqiang.io]# grubby --set-default=/boot/vmlinuz-5.4.228-1.el8.elrepo.x86_64
这个命令的后面的字符串 /boot/vmlinuz-5.4.228-1.el8.elrepo.x86_64
就是设置哪个内核为默认内核,然后你重启系统,你会发现如果不手动干预的情况下,系统会默认从新的内核启动。
启动之后,你可以查看一下当前的内核版本:
[root@liqiang.io]# uname -msr
Linux 5.4.228-1.el8.elrepo.x86_64 x86_64
收工了事。