Rocky Linux 9.x 内核升级至 6.x

默认情况下 Rocky Linux 9.1 内核是 5.14 版本,目前最新版本的内核为 6.x,这里以将内核升级至 6.x 为例。
注: 此升级方式不仅仅适用于 Rocky Linux 9.X,也适用于 Rocky Linux 8.X,以及所有 Red Hat 系 Linux 操作系统。

国内源配置

目前,elrepo 在国内有多个镜像源,包括:阿里云、清华大学、中国科学技术大学等。

由于清华大学源是官方认可的镜像源,相较于其他源,其更新通常更为及时。当然,如果其他源定期同步频率较高,更新速度也会很快。在木子于 2024 年 9 月 8 日进行的测试中,官方发布了 6.1.109-1.el9.elrepo 内核,而阿里云及中国科学技术大学源仍保持在 6.1.108-1.el9.elrepo 版本,但清华大学源已经更新至 6.1.109-1.el9.elrepo

以下是更换为清华大学源的步骤:

  1. 编辑 /etc/yum.repos.d/elrepo.repo 文件。
  2. mirrorlist= 开头的行前面加 # 注释掉。
  3. elrepo.org/linux 替换为 mirrors.tuna.tsinghua.edu.cn/elrepo
  4. 更新软件包缓存: yum makecache
  5. 开始进行内核升级操作。

这样,您就可以使用清华大学的镜像源,确保及时获取最新的 elrepo 更新。

升级内核

看到有同学留言关于 Linux 内核的两个不同版本,其实在升级配置中有注明,为了更加完善文档,这里将两者拆分说明。
Linux 内核的版本管理确实存在不同的分支,通常包括: 长期支持(Long Term Support, LTS)主线(Mainline) 版本。下面是这两个版本之间的主要区别:

  1. Mainline (ml):

    • 主线版本是 Linux 内核开发的最前沿,包含了最新的功能、改进和修复。
    • 主线内核由 Linux 内核之父 Linus Torvalds 直接管理,定期发布新版本。
    • 这个版本是持续发展的,通常每隔 2-3 个月会发布一个新的主线版本。
    • 主线版本在发布后不会得到长期的支持。当下一个主线版本发布后,除了安全修复和重要的 bug 修复外,之前的版本通常不会再接收更新。
    • 主线版本适合那些需要最新功能和改进的用户,以及开发者和贡献者。
  2. Long Term Support (lt):

    • 长期支持版本是从主线版本中选出的,用于提供长期的维护和支持。
    • 一个 LTS 版本会有专门的维护者,并且会得到长达几年的支持,通常是 2 到 6 年不等。
    • 长期支持版本主要集中在安全更新、重要的 bug 修复和系统稳定性上,而不会引入新功能。
    • LTS 版本适合需要高稳定性和可靠性的环境,比如企业服务器、嵌入式系统和产品。

选择哪个版本取决于自身的需求。如果需要最新的功能和对最新硬件的支持,可能会选择主线版本。如果是寻求稳定性和长期支持,那么长期支持版本会是更好的选择。在许多企业和生产环境中,通常会使用 LTS 版本,因为它提供了一个可预测和稳定的基础。

注: 最新的长期支持版和主线版本,可以通过 Linux 内核官网查看: The Linux Kernel Archives

升级至主线(ml)版本

确认现有内核版本,导入公钥,安装 ELRepo,再升级对应内核。

# 查看当前内核版本
[root@localhost ~]# uname -r
5.14.0-162.6.1.el9_1.x86_64

# 载入公钥
[root@localhost ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

# 安装 ELRepo
[root@localhost ~]# dnf install https://www.elrepo.org/elrepo-release-9.el9.elrepo.noarch.rpm
Last metadata expiration check: 2:15:48 ago on Tue Nov 29 16:11:08 2022.
elrepo-release-9.el9.elrepo.noarch.rpm                                                                                                       13 kB/s |  12 kB     00:00    
Dependencies resolved.
============================================================================================================================================================================
 Package                                    Architecture                       Version                                       Repository                                Size
============================================================================================================================================================================
Installing:
 elrepo-release                             noarch                             9.1-1.el9.elrepo                              @commandline                              12 k

Transaction Summary
============================================================================================================================================================================
Install  1 Package

Total size: 12 k
Installed size: 5.0 k
Is this ok [y/N]: y
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                                                    1/1 
  Installing       : elrepo-release-9.1-1.el9.elrepo.noarch                                                                                                             1/1 
  Verifying        : elrepo-release-9.1-1.el9.elrepo.noarch                                                                                                             1/1 

Installed:
  elrepo-release-9.1-1.el9.elrepo.noarch                                                                                                                                    

Complete!

# 设置国内源
# 1. 注释掉原生的镜像列表
# 2. 并将 elrepo.org/linux 地址替换为清华镜像源对应地址 mirrors.tuna.tsinghua.edu.cn/elrepo
[root@localhost ~]# sed -i 's/mirrorlist=/#mirrorlist=/g' /etc/yum.repos.d/elrepo.repo
[root@localhost ~]# sed -i 's#elrepo.org/linux#mirrors.tuna.tsinghua.edu.cn/elrepo#g' /etc/yum.repos.d/elrepo.repo
[root@localhost ~]# dnf makecache

# 载入 elrepo-kernel 元数据
[root@localhost ~]# dnf --disablerepo=\* --enablerepo=elrepo-kernel repolist
repo id                                                       repo name
elrepo-kernel                                                 ELRepo.org Community Enterprise Linux Kernel Repository - el9

# 查看可用内核包
[root@localhost ~]# dnf --disablerepo=\* --enablerepo=elrepo-kernel list kernel*
ELRepo.org Community Enterprise Linux Kernel Repository - el9                                                                               354 kB/s | 1.0 MB     00:02    
Last metadata expiration check: 0:00:01 ago on Tue Nov 29 18:28:07 2022.
Installed Packages
kernel.x86_64                                                                         5.14.0-70.30.1.el9_0                                                     @baseos      
kernel.x86_64                                                                         5.14.0-162.6.1.el9_1                                                     @baseos      
kernel-core.x86_64                                                                    5.14.0-70.30.1.el9_0                                                     @baseos      
kernel-core.x86_64                                                                    5.14.0-162.6.1.el9_1                                                     @baseos      
kernel-modules.x86_64                                                                 5.14.0-70.30.1.el9_0                                                     @baseos      
kernel-modules.x86_64                                                                 5.14.0-162.6.1.el9_1                                                     @baseos      
kernel-tools.x86_64                                                                   5.14.0-162.6.1.el9_1                                                     @baseos      
kernel-tools-libs.x86_64                                                              5.14.0-162.6.1.el9_1                                                     @baseos      
Available Packages
kernel-ml.x86_64                                                                      6.0.10-1.el9.elrepo                                                      elrepo-kernel
kernel-ml-core.x86_64                                                                 6.0.10-1.el9.elrepo                                                      elrepo-kernel
kernel-ml-devel.x86_64                                                                6.0.10-1.el9.elrepo                                                      elrepo-kernel
kernel-ml-devel-matched.x86_64                                                        6.0.10-1.el9.elrepo                                                      elrepo-kernel
kernel-ml-doc.noarch                                                                  6.0.10-1.el9.elrepo                                                      elrepo-kernel
kernel-ml-headers.x86_64                                                              6.0.10-1.el9.elrepo                                                      elrepo-kernel
kernel-ml-modules.x86_64                                                              6.0.10-1.el9.elrepo                                                      elrepo-kernel
kernel-ml-modules-extra.x86_64                                                        6.0.10-1.el9.elrepo                                                      elrepo-kernel
kernel-ml-tools.x86_64                                                                6.0.10-1.el9.elrepo                                                      elrepo-kernel
kernel-ml-tools-libs.x86_64                                                           6.0.10-1.el9.elrepo                                                      elrepo-kernel
kernel-ml-tools-libs-devel.x86_64                                                     6.0.10-1.el9.elrepo                                                      elrepo-kernel

# 安装最新版本的kernel
# lt long term,长期支持版本,更稳定
# ml main line,主线版本,特性更新
[root@localhost ~]# dnf --disablerepo=\* --enablerepo=elrepo-kernel install -y kernel-ml.x86_64
Last metadata expiration check: 0:00:36 ago on Tue Nov 29 18:28:07 2022.
Dependencies resolved.
============================================================================================================================================================================
 Package                                     Architecture                     Version                                         Repository                               Size
============================================================================================================================================================================
Installing:
 kernel-ml                                   x86_64                           6.0.10-1.el9.elrepo                             elrepo-kernel                            12 k
Installing dependencies:
 kernel-ml-core                              x86_64                           6.0.10-1.el9.elrepo                             elrepo-kernel                            56 M
 kernel-ml-modules                           x86_64                           6.0.10-1.el9.elrepo                             elrepo-kernel                            51 M

Transaction Summary
============================================================================================================================================================================
Install  3 Packages

Total download size: 107 M
Installed size: 148 M
Downloading Packages:
(1/3): kernel-ml-6.0.10-1.el9.elrepo.x86_64.rpm                                                                                              22 kB/s |  12 kB     00:00    
(2/3): kernel-ml-core-6.0.10-1.el9.elrepo.x86_64.rpm                                                                                        407 kB/s |  56 MB     02:21    
(3/3): kernel-ml-modules-6.0.10-1.el9.elrepo.x86_64.rpm                                                                                     161 kB/s |  51 MB     05:24    
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                       338 kB/s | 107 MB     05:25     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                                                    1/1 
  Installing       : kernel-ml-core-6.0.10-1.el9.elrepo.x86_64                                                                                                          1/3 
  Running scriptlet: kernel-ml-core-6.0.10-1.el9.elrepo.x86_64                                                                                                          1/3 
  Installing       : kernel-ml-modules-6.0.10-1.el9.elrepo.x86_64                                                                                                       2/3 
  Running scriptlet: kernel-ml-modules-6.0.10-1.el9.elrepo.x86_64                                                                                                       2/3 
  Installing       : kernel-ml-6.0.10-1.el9.elrepo.x86_64                                                                                                               3/3 
  Running scriptlet: kernel-ml-core-6.0.10-1.el9.elrepo.x86_64                                                                                                          3/3 
  Running scriptlet: kernel-ml-6.0.10-1.el9.elrepo.x86_64                                                                                                               3/3 
  Verifying        : kernel-ml-6.0.10-1.el9.elrepo.x86_64                                                                                                               1/3 
  Verifying        : kernel-ml-core-6.0.10-1.el9.elrepo.x86_64                                                                                                          2/3 
  Verifying        : kernel-ml-modules-6.0.10-1.el9.elrepo.x86_64                                                                                                       3/3 

Installed:
  kernel-ml-6.0.10-1.el9.elrepo.x86_64                kernel-ml-core-6.0.10-1.el9.elrepo.x86_64                kernel-ml-modules-6.0.10-1.el9.elrepo.x86_64               

Complete!

# 删除旧版本工具包
[root@localhost ~]# dnf remove kernel-tools-libs.x86_64 kernel-tools.x86_64
Dependencies resolved.
============================================================================================================================================================================
 Package                                      Architecture                      Version                                           Repository                           Size
============================================================================================================================================================================
Removing:
 kernel-tools                                 x86_64                            5.14.0-162.6.1.el9_1                              @baseos                             769 k
 kernel-tools-libs                            x86_64                            5.14.0-162.6.1.el9_1                              @baseos                              30 k
Removing unused dependencies:
 pciutils-libs                                x86_64                            3.7.0-5.el9                                       @minimal                             79 k

Transaction Summary
============================================================================================================================================================================
Remove  3 Packages

Freed space: 878 k
Is this ok [y/N]: y
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                                                    1/1 
  Erasing          : kernel-tools-5.14.0-162.6.1.el9_1.x86_64                                                                                                           1/3 
  Erasing          : kernel-tools-libs-5.14.0-162.6.1.el9_1.x86_64                                                                                                      2/3 
  Running scriptlet: kernel-tools-libs-5.14.0-162.6.1.el9_1.x86_64                                                                                                      2/3 
  Erasing          : pciutils-libs-3.7.0-5.el9.x86_64                                                                                                                   3/3 
  Running scriptlet: pciutils-libs-3.7.0-5.el9.x86_64                                                                                                                   3/3 
  Verifying        : kernel-tools-5.14.0-162.6.1.el9_1.x86_64                                                                                                           1/3 
  Verifying        : kernel-tools-libs-5.14.0-162.6.1.el9_1.x86_64                                                                                                      2/3 
  Verifying        : pciutils-libs-3.7.0-5.el9.x86_64                                                                                                                   3/3 

Removed:
  kernel-tools-5.14.0-162.6.1.el9_1.x86_64                  kernel-tools-libs-5.14.0-162.6.1.el9_1.x86_64                  pciutils-libs-3.7.0-5.el9.x86_64                 

Complete!

# 安装新版本内核工具包
[root@localhost ~]# dnf --disablerepo=\* --enablerepo=elrepo-kernel install -y kernel-ml-tools.x86_64
Last metadata expiration check: 0:08:00 ago on Tue Nov 29 18:28:07 2022.
Error: 
 Problem: cannot install the best candidate for the job
  - nothing provides libpci.so.3()(64bit) needed by kernel-ml-tools-6.0.10-1.el9.elrepo.x86_64
  - nothing provides libpci.so.3(LIBPCI_3.0)(64bit) needed by kernel-ml-tools-6.0.10-1.el9.elrepo.x86_64
  - nothing provides libpci.so.3(LIBPCI_3.3)(64bit) needed by kernel-ml-tools-6.0.10-1.el9.elrepo.x86_64
  - nothing provides libpci.so.3(LIBPCI_3.5)(64bit) needed by kernel-ml-tools-6.0.10-1.el9.elrepo.x86_64
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)

# 因为在卸载旧版本的内核工具包的时候,删除了 pciutils-libs,造成安装新版本的内核工具包时报错,所以我们需要先安装 pciutils-libs,再安装新版本的内核工具包。(Rocky Linux 9.4 未发现此问题)
[root@localhost ~]# dnf install pciutils-libs
ELRepo.org Community Enterprise Linux Repository - el9                                                                                       51 kB/s | 117 kB     00:02    
Dependencies resolved.
============================================================================================================================================================================
 Package                                      Architecture                          Version                                     Repository                             Size
============================================================================================================================================================================
Installing:
 pciutils-libs                                x86_64                                3.7.0-5.el9                                 baseos                                 41 k

Transaction Summary
============================================================================================================================================================================
Install  1 Package

Total download size: 41 k
Installed size: 79 k
Is this ok [y/N]: y
Downloading Packages:
pciutils-libs-3.7.0-5.el9.x86_64.rpm                                                                                                        120 kB/s |  41 kB     00:00    
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                       117 kB/s |  41 kB     00:00     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                                                    1/1 
  Installing       : pciutils-libs-3.7.0-5.el9.x86_64                                                                                                                   1/1 
  Running scriptlet: pciutils-libs-3.7.0-5.el9.x86_64                                                                                                                   1/1 
  Verifying        : pciutils-libs-3.7.0-5.el9.x86_64                                                                                                                   1/1 

Installed:
  pciutils-libs-3.7.0-5.el9.x86_64                                                                                                                                          

Complete!

# 再安装新版本的内核工具包
[root@localhost ~]# dnf --disablerepo=\* --enablerepo=elrepo-kernel install -y kernel-ml-tools.x86_64
Last metadata expiration check: 0:09:51 ago on Tue Nov 29 18:28:07 2022.
Dependencies resolved.
============================================================================================================================================================================
 Package                                       Architecture                    Version                                         Repository                              Size
============================================================================================================================================================================
Installing:
 kernel-ml-tools                               x86_64                          6.0.10-1.el9.elrepo                             elrepo-kernel                          248 k
Installing dependencies:
 kernel-ml-tools-libs                          x86_64                          6.0.10-1.el9.elrepo                             elrepo-kernel                           22 k

Transaction Summary
============================================================================================================================================================================
Install  2 Packages

Total download size: 270 k
Installed size: 956 k
Downloading Packages:
(1/2): kernel-ml-tools-libs-6.0.10-1.el9.elrepo.x86_64.rpm                                                                                   28 kB/s |  22 kB     00:00    
(2/2): kernel-ml-tools-6.0.10-1.el9.elrepo.x86_64.rpm                                                                                        30 kB/s | 248 kB     00:08    
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                        31 kB/s | 270 kB     00:08     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                                                    1/1 
  Installing       : kernel-ml-tools-libs-6.0.10-1.el9.elrepo.x86_64                                                                                                    1/2 
  Running scriptlet: kernel-ml-tools-libs-6.0.10-1.el9.elrepo.x86_64                                                                                                    1/2 
  Installing       : kernel-ml-tools-6.0.10-1.el9.elrepo.x86_64                                                                                                         2/2 
  Running scriptlet: kernel-ml-tools-6.0.10-1.el9.elrepo.x86_64                                                                                                         2/2 
  Verifying        : kernel-ml-tools-6.0.10-1.el9.elrepo.x86_64                                                                                                         1/2 
  Verifying        : kernel-ml-tools-libs-6.0.10-1.el9.elrepo.x86_64                                                                                                    2/2 

Installed:
  kernel-ml-tools-6.0.10-1.el9.elrepo.x86_64                                         kernel-ml-tools-libs-6.0.10-1.el9.elrepo.x86_64                                        

Complete!

升级至长期支持(lt)版本

升级长期支持(lt)版本过程与升级至主线(ml)版本区别不大,只是名称从 ml 转为 lt,其它基本一致。

# 查看当前内核版本
[root@localhost ~]# uname -r
5.14.0-362.8.1.el9_3.x86_64

# 载入公钥
[root@localhost ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

# 安装 ELRepo
[root@localhost ~]# dnf install https://www.elrepo.org/elrepo-release-9.el9.elrepo.noarch.rpm
Last metadata expiration check: 1:00:55 ago on Mon 04 Mar 2024 01:51:11 PM CST.
elrepo-release-9.el9.elrepo.noarch.rpm                                                                                                                                                                                          9.6 kB/s |  12 kB     00:01    
Dependencies resolved.
================================================================================================================================================================================================================================================================
 Package                                                         Architecture                                            Version                                                            Repository                                                     Size
================================================================================================================================================================================================================================================================
Installing:
 elrepo-release                                                  noarch                                                  9.1-1.el9.elrepo                                                   @commandline                                                   12 k

Transaction Summary
================================================================================================================================================================================================================================================================
Install  1 Package

Total size: 12 k
Installed size: 5.0 k
Is this ok [y/N]: y
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                                                                                                                                        1/1 
  Installing       : elrepo-release-9.1-1.el9.elrepo.noarch                                                                                                                                                                                                 1/1 
  Verifying        : elrepo-release-9.1-1.el9.elrepo.noarch                                                                                                                                                                                                 1/1 
Installed:
  elrepo-release-9.1-1.el9.elrepo.noarch 
Complete!

# 设置国内源
# 1. 注释掉原生的镜像列表
# 2. 并将 elrepo.org/linux 地址替换为清华镜像源对应地址 mirrors.tuna.tsinghua.edu.cn/elrepo
[root@localhost ~]# sed -i 's/mirrorlist=/#mirrorlist=/g' /etc/yum.repos.d/elrepo.repo
[root@localhost ~]# sed -i 's#elrepo.org/linux#mirrors.tuna.tsinghua.edu.cn/elrepo#g' /etc/yum.repos.d/elrepo.repo
[root@localhost ~]# dnf makecache

# 载入elrepo-kernel元数据
[root@localhost ~]# dnf --disablerepo=\* --enablerepo=elrepo-kernel repolist
repo id                                                                                                 repo name
elrepo-kernel                                                                                           ELRepo.org Community Enterprise Linux Kernel Repository - el9

# 列出的时候可以看到有 lt 与 ml 两个版本
[root@localhost ~]# dnf --disablerepo=\* --enablerepo=elrepo-kernel list kernel*
ELRepo.org Community Enterprise Linux Kernel Repository - el9                                                                                                                                                                   403 kB/s | 2.0 MB     00:05    
Last metadata expiration check: 0:00:01 ago on Mon 04 Mar 2024 02:56:10 PM CST.
Installed Packages
kernel.x86_64                                                                                                                   5.14.0-362.8.1.el9_3                                                                                               @minimal     
kernel-core.x86_64                                                                                                              5.14.0-362.8.1.el9_3                                                                                               @minimal     
kernel-modules.x86_64                                                                                                           5.14.0-362.8.1.el9_3                                                                                               @minimal     
kernel-modules-core.x86_64                                                                                                      5.14.0-362.8.1.el9_3                                                                                               @minimal     
kernel-tools.x86_64                                                                                                             5.14.0-362.8.1.el9_3                                                                                               @minimal     
kernel-tools-libs.x86_64                                                                                                        5.14.0-362.8.1.el9_3                                                                                               @minimal     
Available Packages
kernel-lt.x86_64                                                                                                                6.1.80-1.el9.elrepo                                                                                                elrepo-kernel
kernel-lt-core.x86_64                                                                                                           6.1.80-1.el9.elrepo                                                                                                elrepo-kernel
kernel-lt-devel.x86_64                                                                                                          6.1.80-1.el9.elrepo                                                                                                elrepo-kernel
kernel-lt-devel-matched.x86_64                                                                                                  6.1.80-1.el9.elrepo                                                                                                elrepo-kernel
kernel-lt-doc.noarch                                                                                                            6.1.80-1.el9.elrepo                                                                                                elrepo-kernel
kernel-lt-headers.x86_64                                                                                                        6.1.80-1.el9.elrepo                                                                                                elrepo-kernel
kernel-lt-modules.x86_64                                                                                                        6.1.80-1.el9.elrepo                                                                                                elrepo-kernel
kernel-lt-modules-extra.x86_64                                                                                                  6.1.80-1.el9.elrepo                                                                                                elrepo-kernel
kernel-lt-tools.x86_64                                                                                                          6.1.80-1.el9.elrepo                                                                                                elrepo-kernel
kernel-lt-tools-libs.x86_64                                                                                                     6.1.80-1.el9.elrepo                                                                                                elrepo-kernel
kernel-lt-tools-libs-devel.x86_64                                                                                               6.1.80-1.el9.elrepo                                                                                                elrepo-kernel
kernel-ml.x86_64                                                                                                                6.7.8-1.el9.elrepo                                                                                                 elrepo-kernel
kernel-ml-core.x86_64                                                                                                           6.7.8-1.el9.elrepo                                                                                                 elrepo-kernel
kernel-ml-devel.x86_64                                                                                                          6.7.8-1.el9.elrepo                                                                                                 elrepo-kernel
kernel-ml-devel-matched.x86_64                                                                                                  6.7.8-1.el9.elrepo                                                                                                 elrepo-kernel
kernel-ml-doc.noarch                                                                                                            6.7.8-1.el9.elrepo                                                                                                 elrepo-kernel
kernel-ml-headers.x86_64                                                                                                        6.7.8-1.el9.elrepo                                                                                                 elrepo-kernel
kernel-ml-modules.x86_64                                                                                                        6.7.8-1.el9.elrepo                                                                                                 elrepo-kernel
kernel-ml-modules-extra.x86_64                                                                                                  6.7.8-1.el9.elrepo                                                                                                 elrepo-kernel
kernel-ml-tools.x86_64                                                                                                          6.7.8-1.el9.elrepo                                                                                                 elrepo-kernel
kernel-ml-tools-libs.x86_64                                                                                                     6.7.8-1.el9.elrepo                                                                                                 elrepo-kernel
kernel-ml-tools-libs-devel.x86_64                                                                                               6.7.8-1.el9.elrepo                                                                                                 elrepo-kernel

# 安装最新版本的 kernel-lt 内核包
# lt long term,长期支持版本,更稳定
# ml main line,主线版本,特性更新
[root@localhost ~]# dnf --disablerepo=\* --enablerepo=elrepo-kernel install -y kernel-lt.x86_64
Last metadata expiration check: 0:00:43 ago on Mon 04 Mar 2024 02:56:10 PM CST.
Dependencies resolved.
================================================================================================================================================================================================================================================================
 Package                                                          Architecture                                          Version                                                              Repository                                                    Size
================================================================================================================================================================================================================================================================
Installing:
 kernel-lt                                                        x86_64                                                6.1.80-1.el9.elrepo                                                  elrepo-kernel                                                 36 k
Installing dependencies:
 kernel-lt-core                                                   x86_64                                                6.1.80-1.el9.elrepo                                                  elrepo-kernel                                                 46 M
 kernel-lt-modules                                                x86_64                                                6.1.80-1.el9.elrepo                                                  elrepo-kernel                                                 45 M

Transaction Summary
================================================================================================================================================================================================================================================================
Install  3 Packages

Total download size: 91 M
Installed size: 130 M
Downloading Packages:
(1/3): kernel-lt-6.1.80-1.el9.elrepo.x86_64.rpm                                                                                                                                                                                  48 kB/s |  36 kB     00:00    
(2/3): kernel-lt-modules-6.1.80-1.el9.elrepo.x86_64.rpm                                                                                                                                                                         2.2 MB/s |  45 MB     00:20    
(3/3): kernel-lt-core-6.1.80-1.el9.elrepo.x86_64.rpm                                                                                                                                                                            2.2 MB/s |  46 MB     00:20    
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                                                                                                           4.2 MB/s |  91 MB     00:21     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                                                                                                                                        1/1 
  Installing       : kernel-lt-core-6.1.80-1.el9.elrepo.x86_64                                                                                                                                                                                              1/3 
  Running scriptlet: kernel-lt-core-6.1.80-1.el9.elrepo.x86_64                                                                                                                                                                                              1/3 
  Installing       : kernel-lt-modules-6.1.80-1.el9.elrepo.x86_64                                                                                                                                                                                           2/3 
  Running scriptlet: kernel-lt-modules-6.1.80-1.el9.elrepo.x86_64                                                                                                                                                                                           2/3 
  Installing       : kernel-lt-6.1.80-1.el9.elrepo.x86_64                                                                                                                                                                                                   3/3 
  Running scriptlet: kernel-lt-core-6.1.80-1.el9.elrepo.x86_64                                                                                                                                                                                              3/3 
  Running scriptlet: kernel-lt-6.1.80-1.el9.elrepo.x86_64                                                                                                                                                                                                   3/3 
  Verifying        : kernel-lt-6.1.80-1.el9.elrepo.x86_64                                                                                                                                                                                                   1/3 
  Verifying        : kernel-lt-core-6.1.80-1.el9.elrepo.x86_64                                                                                                                                                                                              2/3 
  Verifying        : kernel-lt-modules-6.1.80-1.el9.elrepo.x86_64                                                                                                                                                                                           3/3 
Installed:
  kernel-lt-6.1.80-1.el9.elrepo.x86_64                                            kernel-lt-core-6.1.80-1.el9.elrepo.x86_64                                            kernel-lt-modules-6.1.80-1.el9.elrepo.x86_64                                           
Complete!

[root@localhost ~]# dnf remove kernel-tools-libs.x86_64 kernel-tools.x86_64
Dependencies resolved.
================================================================================================================================================================================================================================================================
 Package                                                           Architecture                                           Version                                                                Repository                                                Size
================================================================================================================================================================================================================================================================
Removing:
 kernel-tools                                                      x86_64                                                 5.14.0-362.8.1.el9_3                                                   @minimal                                                 788 k
 kernel-tools-libs                                                 x86_64                                                 5.14.0-362.8.1.el9_3                                                   @minimal                                                  30 k
Removing unused dependencies:
 pciutils-libs                                                     x86_64                                                 3.7.0-5.el9                                                            @minimal                                                  79 k

Transaction Summary
================================================================================================================================================================================================================================================================
Remove  3 Packages

Freed space: 897 k
Is this ok [y/N]: y
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                                                                                                                                        1/1 
  Running scriptlet: kernel-tools-5.14.0-362.8.1.el9_3.x86_64                                                                                                                                                                                               1/3 
  Erasing          : kernel-tools-5.14.0-362.8.1.el9_3.x86_64                                                                                                                                                                                               1/3 
  Running scriptlet: kernel-tools-5.14.0-362.8.1.el9_3.x86_64                                                                                                                                                                                               1/3 
  Erasing          : kernel-tools-libs-5.14.0-362.8.1.el9_3.x86_64                                                                                                                                                                                          2/3 
  Running scriptlet: kernel-tools-libs-5.14.0-362.8.1.el9_3.x86_64                                                                                                                                                                                          2/3 
  Erasing          : pciutils-libs-3.7.0-5.el9.x86_64                                                                                                                                                                                                       3/3 
  Running scriptlet: pciutils-libs-3.7.0-5.el9.x86_64                                                                                                                                                                                                       3/3 
  Verifying        : kernel-tools-5.14.0-362.8.1.el9_3.x86_64                                                                                                                                                                                               1/3 
  Verifying        : kernel-tools-libs-5.14.0-362.8.1.el9_3.x86_64                                                                                                                                                                                          2/3 
  Verifying        : pciutils-libs-3.7.0-5.el9.x86_64                                                                                                                                                                                                       3/3 
Removed:
  kernel-tools-5.14.0-362.8.1.el9_3.x86_64                                              kernel-tools-libs-5.14.0-362.8.1.el9_3.x86_64                                              pciutils-libs-3.7.0-5.el9.x86_64                                             
Complete!

# 因为在卸载旧版本的内核工具包的时候,删除了 pciutils-libs,造成安装新版本的内核工具包时报错,所以我们需要先安装 pciutils-libs,再安装新版本的内核工具包。(Rocky Linux 9.4 未发现此问题)
[root@localhost ~]# dnf install pciutils-libs
ELRepo.org Community Enterprise Linux Repository - el9                                                                                                                                                                          120 kB/s | 300 kB     00:02    
Dependencies resolved.
================================================================================================================================================================================================================================================================
 Package                                                           Architecture                                               Version                                                          Repository                                                  Size
================================================================================================================================================================================================================================================================
Installing:
 pciutils-libs                                                     x86_64                                                     3.7.0-5.el9                                                      baseos                                                      41 k

Transaction Summary
================================================================================================================================================================================================================================================================
Install  1 Package

Total download size: 41 k
Installed size: 79 k
Is this ok [y/N]: y
Downloading Packages:
pciutils-libs-3.7.0-5.el9.x86_64.rpm                                                                                                                                                                                            107 kB/s |  41 kB     00:00    
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                                                                                                            27 kB/s |  41 kB     00:01     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                                                                                                                                        1/1 
  Installing       : pciutils-libs-3.7.0-5.el9.x86_64                                                                                                                                                                                                       1/1 
  Running scriptlet: pciutils-libs-3.7.0-5.el9.x86_64                                                                                                                                                                                                       1/1 
  Verifying        : pciutils-libs-3.7.0-5.el9.x86_64                                                                                                                                                                                                       1/1 
Installed:
  pciutils-libs-3.7.0-5.el9.x86_64  
Complete!

# 同样内核工具为 kernel-lt-tools.x86_64
[root@localhost ~]# dnf --disablerepo=\* --enablerepo=elrepo-kernel install -y kernel-lt-tools.x86_64
Last metadata expiration check: 0:03:28 ago on Mon 04 Mar 2024 02:56:10 PM CST.
Dependencies resolved.
================================================================================================================================================================================================================================================================
 Package                                                            Architecture                                         Version                                                              Repository                                                   Size
================================================================================================================================================================================================================================================================
Installing:
 kernel-lt-tools                                                    x86_64                                               6.1.80-1.el9.elrepo                                                  elrepo-kernel                                               272 k
Installing dependencies:
 kernel-lt-tools-libs                                               x86_64                                               6.1.80-1.el9.elrepo                                                  elrepo-kernel                                                46 k

Transaction Summary
================================================================================================================================================================================================================================================================
Install  2 Packages

Total download size: 318 k
Installed size: 932 k
Downloading Packages:
(1/2): kernel-lt-tools-libs-6.1.80-1.el9.elrepo.x86_64.rpm                                                                                                                                                                       45 kB/s |  46 kB     00:01    
(2/2): kernel-lt-tools-6.1.80-1.el9.elrepo.x86_64.rpm                                                                                                                                                                           182 kB/s | 272 kB     00:01    
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                                                                                                           136 kB/s | 318 kB     00:02     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                                                                                                                                        1/1 
  Installing       : kernel-lt-tools-libs-6.1.80-1.el9.elrepo.x86_64                                                                                                                                                                                        1/2 
  Running scriptlet: kernel-lt-tools-libs-6.1.80-1.el9.elrepo.x86_64                                                                                                                                                                                        1/2 
  Installing       : kernel-lt-tools-6.1.80-1.el9.elrepo.x86_64                                                                                                                                                                                             2/2 
  Running scriptlet: kernel-lt-tools-6.1.80-1.el9.elrepo.x86_64                                                                                                                                                                                             2/2 
  Verifying        : kernel-lt-tools-6.1.80-1.el9.elrepo.x86_64                                                                                                                                                                                             1/2 
  Verifying        : kernel-lt-tools-libs-6.1.80-1.el9.elrepo.x86_64                                                                                                                                                                                        2/2 
Installed:
  kernel-lt-tools-6.1.80-1.el9.elrepo.x86_64                                                                                   kernel-lt-tools-libs-6.1.80-1.el9.elrepo.x86_64  
Complete!

设置内核启动顺序

设置默认启动顺序,通过 grubby --info=ALL 命令获取目前所有启动项,然后通过 grub2-set-default 命令设置或者通过 grubby --set-default 设置对应启动项。

# 查看所有内核启动项
[root@localhost ~]# grubby --info=ALL
index=0
kernel="/boot/vmlinuz-5.14.0-70.30.1.el9_0.x86_64"
args="ro crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M resume=/dev/mapper/rl-swap rd.lvm.lv=rl/root rd.lvm.lv=rl/swap ipv6.disable=1 selinux=0"
root="/dev/mapper/rl-root"
initrd="/boot/initramfs-5.14.0-70.30.1.el9_0.x86_64.img"
title="Rocky Linux (5.14.0-70.30.1.el9_0.x86_64) 9.0 (Blue Onyx)"
id="0af0a3c0bc4946a6bb4cc8daa8c8a1f7-5.14.0-70.30.1.el9_0.x86_64"
index=1
kernel="/boot/vmlinuz-0-rescue-0af0a3c0bc4946a6bb4cc8daa8c8a1f7"
args="ro crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M resume=/dev/mapper/rl-swap rd.lvm.lv=rl/root rd.lvm.lv=rl/swap ipv6.disable=1 selinux=0"
root="/dev/mapper/rl-root"
initrd="/boot/initramfs-0-rescue-0af0a3c0bc4946a6bb4cc8daa8c8a1f7.img"
title="Rocky Linux (0-rescue-0af0a3c0bc4946a6bb4cc8daa8c8a1f7) 9.0 (Blue Onyx)"
id="0af0a3c0bc4946a6bb4cc8daa8c8a1f7-0-rescue"
index=2
kernel="/boot/vmlinuz-6.0.10-1.el9.elrepo.x86_64"
args="ro crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M resume=/dev/mapper/rl-swap rd.lvm.lv=rl/root rd.lvm.lv=rl/swap ipv6.disable=1 selinux=0"
root="/dev/mapper/rl-root"
initrd="/boot/initramfs-6.0.10-1.el9.elrepo.x86_64.img"
title="Rocky Linux (6.0.10-1.el9.elrepo.x86_64) 9.1 (Blue Onyx)"
id="bae8b9faf30f473196d3a871e300f4dc-6.0.10-1.el9.elrepo.x86_64"
index=3
kernel="/boot/vmlinuz-5.14.0-162.6.1.el9_1.x86_64"
args="ro crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M resume=/dev/mapper/rl-swap rd.lvm.lv=rl/root rd.lvm.lv=rl/swap ipv6.disable=1 selinux=0"
root="/dev/mapper/rl-root"
initrd="/boot/initramfs-5.14.0-162.6.1.el9_1.x86_64.img"
title="Rocky Linux (5.14.0-162.6.1.el9_1.x86_64) 9.1 (Blue Onyx)"

# 这里看到内核 6.0 索引为2,所以这里设置默认内核为2
[root@localhost ~]# grubby --set-default 2
The default is /boot/loader/entries/bae8b9faf30f473196d3a871e300f4dc-6.0.10-1.el9.elrepo.x86_64.conf with index 2 and kernel /boot/vmlinuz-6.0.10-1.el9.elrepo.x86_64

# 查看默认内核
[root@localhost ~]# grubby --default-kernel
/boot/vmlinuz-6.0.10-1.el9.elrepo.x86_64

# 重启服务器
[root@localhost ~]# reboot

# 查看启动内核为6.0
[root@localhost ~]# uname -r
6.0.10-1.el9.elrepo.x86_64

# 查看当前 Linux 系统引导时传给内核的所有命令行参数
[root@localhost ~]# cat /proc/cmdline
BOOT_IMAGE=(hd0,msdos1)/vmlinuz-6.1.111-1.el9.elrepo.x86_64 root=/dev/mapper/rl-root ro crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M resume=/dev/mapper/rl-swap rd.lvm.lv=rl/root rd.lvm.lv=rl/swap selinux=0 user_namespace.enable=1

删除旧内核

在这里我们保留系统上安装的最后两个内核并删除多余的旧内核。木子已经明确定义了 installonly_limit=2 使用 --setopt 来覆盖 /etc/dnf/dnf.conf 中的默认配置。如果您不指定 installonly_limit 参数,那么默认情况下 dnf remove 命令将采用 /etc/dnf/dnf.conf 中的 installonly_limit 值。

# 对应的limit值,可以修改配置文件
[root@localhost ~]# grep limit /etc/dnf/dnf.conf
installonly_limit=3

# 删除多余内核,只保留最后两个
[root@localhost ~]# dnf remove --oldinstallonly --setopt installonly_limit=2 kernel
Dependencies resolved.
============================================================================================================================================================================
 Package                                    Architecture                       Version                                            Repository                           Size
============================================================================================================================================================================
Removing:
 kernel                                     x86_64                             5.14.0-70.30.1.el9_0                               @baseos                               0  
 kernel-core                                x86_64                             5.14.0-70.30.1.el9_0                               @baseos                              73 M
 kernel-modules                             x86_64                             5.14.0-70.30.1.el9_0                               @baseos                              20 M

Transaction Summary
============================================================================================================================================================================
Remove  3 Packages

Freed space: 93 M
Is this ok [y/N]: y
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                                                    1/1 
  Erasing          : kernel-5.14.0-70.30.1.el9_0.x86_64                                                                                                                 1/3 
  Running scriptlet: kernel-5.14.0-70.30.1.el9_0.x86_64                                                                                                                 1/3 
  Erasing          : kernel-modules-5.14.0-70.30.1.el9_0.x86_64                                                                                                         2/3 
  Running scriptlet: kernel-modules-5.14.0-70.30.1.el9_0.x86_64                                                                                                         2/3 
  Running scriptlet: kernel-core-5.14.0-70.30.1.el9_0.x86_64                                                                                                            3/3 
  Erasing          : kernel-core-5.14.0-70.30.1.el9_0.x86_64                                                                                                            3/3 
  Running scriptlet: kernel-core-5.14.0-70.30.1.el9_0.x86_64                                                                                                            3/3 
  Verifying        : kernel-5.14.0-70.30.1.el9_0.x86_64                                                                                                                 1/3 
  Verifying        : kernel-core-5.14.0-70.30.1.el9_0.x86_64                                                                                                            2/3 
  Verifying        : kernel-modules-5.14.0-70.30.1.el9_0.x86_64                                                                                                         3/3 

Removed:
  kernel-5.14.0-70.30.1.el9_0.x86_64                  kernel-core-5.14.0-70.30.1.el9_0.x86_64                  kernel-modules-5.14.0-70.30.1.el9_0.x86_64                 

Complete!

# 这里我们看到还有两个内核,其中6.0是现在在用的,5.14.0-162是之前使用的
[root@localhost ~]# rpm -qa | grep kernel
kernel-core-5.14.0-162.6.1.el9_1.x86_64
kernel-modules-5.14.0-162.6.1.el9_1.x86_64
kernel-5.14.0-162.6.1.el9_1.x86_64
kernel-ml-core-6.0.10-1.el9.elrepo.x86_64
kernel-ml-modules-6.0.10-1.el9.elrepo.x86_64
kernel-ml-6.0.10-1.el9.elrepo.x86_64
kernel-ml-tools-libs-6.0.10-1.el9.elrepo.x86_64
kernel-ml-tools-6.0.10-1.el9.elrepo.x86_64

只保留现正使用的内核

正常情况下 installonly_limit 参数是不允许设置值为 1 的,那么如果我们只想保留目前正在使用的内核,删除其它所有多余的内核,怎么办了?

# 如果您只想保留当前活动内核,这样是不允许的。
[root@localhost ~]# dnf -y remove --oldinstallonly --setopt installonly_limit=1 kernel
Config error: Error parsing --setopt with key 'installonly_limit', value '1': value 1 is not allowed

# 删除内核5.14.0-162
[root@localhost ~]# dnf remove kernel-5.14.0-162.6.1.el9_1.x86_64 kernel-core-5.14.0-162.6.1.el9_1.x86_64 kernel-modules-5.14.0-162.6.1.el9_1.x86_64 
Dependencies resolved.
============================================================================================================================================================================
 Package                                    Architecture                       Version                                            Repository                           Size
============================================================================================================================================================================
Removing:
 kernel                                     x86_64                             5.14.0-162.6.1.el9_1                               @baseos                               0  
 kernel-core                                x86_64                             5.14.0-162.6.1.el9_1                               @baseos                              84 M
 kernel-modules                             x86_64                             5.14.0-162.6.1.el9_1                               @baseos                              31 M

Transaction Summary
============================================================================================================================================================================
Remove  3 Packages

Freed space: 114 M
Is this ok [y/N]: y
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                                                    1/1 
  Erasing          : kernel-5.14.0-162.6.1.el9_1.x86_64                                                                                                                 1/3 
  Running scriptlet: kernel-5.14.0-162.6.1.el9_1.x86_64                                                                                                                 1/3 
  Erasing          : kernel-modules-5.14.0-162.6.1.el9_1.x86_64                                                                                                         2/3 
  Running scriptlet: kernel-modules-5.14.0-162.6.1.el9_1.x86_64                                                                                                         2/3 
  Running scriptlet: kernel-core-5.14.0-162.6.1.el9_1.x86_64                                                                                                            3/3 
  Erasing          : kernel-core-5.14.0-162.6.1.el9_1.x86_64                                                                                                            3/3 
  Running scriptlet: kernel-core-5.14.0-162.6.1.el9_1.x86_64                                                                                                            3/3 
  Verifying        : kernel-5.14.0-162.6.1.el9_1.x86_64                                                                                                                 1/3 
  Verifying        : kernel-core-5.14.0-162.6.1.el9_1.x86_64                                                                                                            2/3 
  Verifying        : kernel-modules-5.14.0-162.6.1.el9_1.x86_64                                                                                                         3/3 

Removed:
  kernel-5.14.0-162.6.1.el9_1.x86_64                  kernel-core-5.14.0-162.6.1.el9_1.x86_64                  kernel-modules-5.14.0-162.6.1.el9_1.x86_64                 

Complete!

# 查看目前所有启动配置
[root@localhost ~]# grubby --info=ALL
index=0
kernel="/boot/vmlinuz-5.14.0-70.30.1.el9_0.x86_64"
args="ro crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M resume=/dev/mapper/rl-swap rd.lvm.lv=rl/root rd.lvm.lv=rl/swap ipv6.disable=1 selinux=0"
root="/dev/mapper/rl-root"
initrd="/boot/initramfs-5.14.0-70.30.1.el9_0.x86_64.img"
title="Rocky Linux (5.14.0-70.30.1.el9_0.x86_64) 9.0 (Blue Onyx)"
id="0af0a3c0bc4946a6bb4cc8daa8c8a1f7-5.14.0-70.30.1.el9_0.x86_64"
index=1
kernel="/boot/vmlinuz-0-rescue-0af0a3c0bc4946a6bb4cc8daa8c8a1f7"
args="ro crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M resume=/dev/mapper/rl-swap rd.lvm.lv=rl/root rd.lvm.lv=rl/swap ipv6.disable=1 selinux=0"
root="/dev/mapper/rl-root"
initrd="/boot/initramfs-0-rescue-0af0a3c0bc4946a6bb4cc8daa8c8a1f7.img"
title="Rocky Linux (0-rescue-0af0a3c0bc4946a6bb4cc8daa8c8a1f7) 9.0 (Blue Onyx)"
id="0af0a3c0bc4946a6bb4cc8daa8c8a1f7-0-rescue"
index=2
kernel="/boot/vmlinuz-6.0.10-1.el9.elrepo.x86_64"
args="ro crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M resume=/dev/mapper/rl-swap rd.lvm.lv=rl/root rd.lvm.lv=rl/swap ipv6.disable=1 selinux=0"
root="/dev/mapper/rl-root"
initrd="/boot/initramfs-6.0.10-1.el9.elrepo.x86_64.img"
title="Rocky Linux (6.0.10-1.el9.elrepo.x86_64) 9.1 (Blue Onyx)"
id="bae8b9faf30f473196d3a871e300f4dc-6.0.10-1.el9.elrepo.x86_64"
index=3
kernel="/boot/vmlinuz-0-rescue-bae8b9faf30f473196d3a871e300f4dc"
args="ro crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M resume=/dev/mapper/rl-swap rd.lvm.lv=rl/root rd.lvm.lv=rl/swap ipv6.disable=1 selinux=0"
root="/dev/mapper/rl-root"
initrd="/boot/initramfs-0-rescue-bae8b9faf30f473196d3a871e300f4dc.img"
title="Rocky Linux (0-rescue-bae8b9faf30f473196d3a871e300f4dc) 9.1 (Blue Onyx)"
id="bae8b9faf30f473196d3a871e300f4dc-0-rescue"

# 删除不需要的内核启动项
[root@localhost ~]# grubby --remove-kernel=/boot/vmlinuz-5.14.0-70.30.1.el9_0.x86_64
[root@localhost ~]# grubby --remove-kernel=/boot/vmlinuz-0-rescue-0af0a3c0bc4946a6bb4cc8daa8c8a1f7

# 这时候我们看到只保留了 6.0 相关内核启动项了
[root@localhost ~]# grubby --info=ALL
index=0
kernel="/boot/vmlinuz-6.0.10-1.el9.elrepo.x86_64"
args="ro crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M resume=/dev/mapper/rl-swap rd.lvm.lv=rl/root rd.lvm.lv=rl/swap ipv6.disable=1 selinux=0"
root="/dev/mapper/rl-root"
initrd="/boot/initramfs-6.0.10-1.el9.elrepo.x86_64.img"
title="Rocky Linux (6.0.10-1.el9.elrepo.x86_64) 9.1 (Blue Onyx)"
id="bae8b9faf30f473196d3a871e300f4dc-6.0.10-1.el9.elrepo.x86_64"
index=1
kernel="/boot/vmlinuz-0-rescue-bae8b9faf30f473196d3a871e300f4dc"
args="ro crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M resume=/dev/mapper/rl-swap rd.lvm.lv=rl/root rd.lvm.lv=rl/swap ipv6.disable=1 selinux=0"
root="/dev/mapper/rl-root"
initrd="/boot/initramfs-0-rescue-bae8b9faf30f473196d3a871e300f4dc.img"
title="Rocky Linux (0-rescue-bae8b9faf30f473196d3a871e300f4dc) 9.1 (Blue Onyx)"
id="bae8b9faf30f473196d3a871e300f4dc-0-rescue"

常见问题

更新内核后启动报错如下:

error: ../../grub-core/kern/efi/sb.c:182:bad shim signature. error: ../../grub-core/loader/i386/efi/linux.c:258:you need to load the kernel first. 

原因:

因为服务器启动了安全引导(SecureBoot)功能。

解决方法:

方法一: BIOS 禁用服务器的安全引导(SecureBoot)。
方法二: 导入 ELRepo 密钥。

参考链接:
[1] secureboot [ELRepo Wiki]
[2] How to sign kernel modules for SecureBoot with "mokutil" ?

dnf install -y mokutil
wget https://elrepo.org/SECURE-BOOT-KEY-elrepo.org.der
mokutil --import /etc/pki/elrepo/SECURE-BOOT-KEY-elrepo.org.der

重启系统,注册密钥,参考链接:secureboot [ELRepo Wiki],即可。

ESXI 参考以下两个链接关闭安全引导:

[1] 管理 ESXi 安全配置
[2] 为虚拟机激活或停用 UEFI 安全引导

PVE 8.0 参考以下步骤关闭虚拟机的安全引导:

启动虚拟机出现 Proxmox 画面时,按 ESC  进入 BIOS,依次选择【Device Manager】–【Secure Boot Configuration】 — 取消勾选【Attempt Secure Boot】– 保存配置,重启生效。

变更记录

  • 2024-03-04
    • 拆分主线及长期支持两个版本更新。
  • 2024-08-13
    • 新增【常见问题】,补充物理服务器安全引导 ELRepo 密钥导入问题。
  • 2024-09-09
    • 新增【国内源配置】,添加国内源及配置说明。
  • 2024-09-23
    • cat /proc/cmdline 查看内核引导参数。
Avatar photo

关于 木子

Founder of the Rocky Linux Chinese community, MVP、VMware vExpert、TVP, advocate for cloud native technologies, with over ten years of experience in site reliability engineering (SRE) and the DevOps field. Passionate about Cloud Computing、Microservices、CI&CD、DevOps、Kubernetes, currently dedicated to promoting and implementing Rocky Linux in Chinese-speaking regions.
用一杯咖啡支持我们,我们的每一篇[文档]都经过实际操作和精心打磨,而不是简单地从网上复制粘贴。期间投入了大量心血,只为能够真正帮助到您。

评论

  1. 已编辑
    7月前
    2024-2-27 9:47:54

    1、ml是mainline版本的内容,内容较新,无需要的话,可以考虑lt是longterm长期支持的版本。对于Rocky8来说,dnf install elrepo-release来获取kernel的包。
    2、一般都是建议保存2个版本的内核,防止内核不兼容导致无法正常启动,所以5.4的内核不建议立即删除,稳定后再删除
    仅做补充说明,如有错误请指正

发送评论 编辑评论


|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇