之前我写过在 CentOS 7 上升级内核,但是在 CentOS 8 上有些操作已经不适用了,所以我又整理一下 CentOS 8 上的版本。

第一步:升级系统软件

作为常规操作,第一步肯定是要先升级一下系统的原有软件,因为后续可能有些步骤可能会依赖于一些已经安装的软件,减少后续的麻烦,所以需要执行一下升级操作:

  1. [root@liqiang.io]# sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
  2. [root@liqiang.io]# sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
  3. [root@liqiang.io]# dnf update -y

第二步:添加 elrepo 源

要升级内核,肯定要有源,这里我使用的是 elrepo 源,通过以下步骤添加:

第三步:安装新内核

现在可以开始安装新的内核了,为了其他源的影响,在使用的时候需要指定一下源:

  1. [root@liqiang.io]# dnf --enablerepo="elrepo-kernel" install kernel-lt-5.4.228-1.el8.elrepo.x86_64

安装完毕之后就可以了。

第四步:设置 grub2

在第三步我已经安装好了新的内核,现在可以查看一下系统中的所有内核,这个步骤和 CentOS 7 的有些不一样(但是我没有很认真地去了解为啥不一样):

  1. [root@liqiang.io]# grubby --info=ALL | grep ^kernel
  2. kernel="/boot/vmlinuz-4.18.0-240.1.1.el8_3.x86_64"
  3. kernel="/boot/vmlinuz-5.4.228-1.el8.elrepo.x86_64"
  4. kernel="/boot/vmlinuz-4.18.0-348.7.1.el8_5.x86_64"
  5. [root@liqiang.io]# grubby --default-kernel
  6. /boot/vmlinuz-5.4.228-1.el8.elrepo.x86_64

我这里已经设置了新的内核为默认启动的,你如果按照这个步骤安装发现新的内核不是默认的,那么需要以这个步骤设置:

  1. [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 就是设置哪个内核为默认内核,然后你重启系统,你会发现如果不手动干预的情况下,系统会默认从新的内核启动。

启动之后,你可以查看一下当前的内核版本:

  1. [root@liqiang.io]# uname -msr
  2. Linux 5.4.228-1.el8.elrepo.x86_64 x86_64

收工了事。

Reference