在 CentOS/RHEL 8 中删除旧的 Linux 内核

在本文中,我们将看到如何从 CentOS/RHEL 8 操作系统中删除旧的 Linux 内核。

删除旧的 Linux 内核

默认情况下,Linux 内核始终由 Yum 包管理器单独安装,同时保持旧版本完整以提供后备支持。

此行为由两个 Yum 包管理器指令控制。

installonlypkgs 空间分隔的包列表,这些包永远不会被包管理器更新。

installonly_limit installonlypkgs 指令中列出的任何单个包可以同时安装的最大版本数。

检查 installonly_limit 指令的当前值

# grep limit /etc/dnf/dnf.conf
installonly_limit=3

在 Linux Bash 提示符下执行以下命令以删除旧版本的 Linux 内核。

# dnf -y remove --oldinstallonly --setopt installonly_limit=1 kernel
...
Removed:
  kernel-4.18.0-240.10.1.el8_3.x86_64
  kernel-4.18.0-240.22.1.el8_3.x86_64
  kernel-core-4.18.0-240.10.1.el8_3.x86_64
  kernel-core-4.18.0-240.22.1.el8_3.x86_64
  kernel-modules-4.18.0-240.10.1.el8_3.x86_64
  kernel-modules-4.18.0-240.22.1.el8_3.x86_64
Complete!

我们可能会注意到,我们没有更改 dnf.conf 文件中的 installonly_limit 指令值,而是在运行时仅为当前 dnf 命令设置它。

现在重新启动 Linux 操作系统。

# reboot

检查 GRUB 引导菜单,旧内核条目已被删除。

什么是 Linux 内核?

Linux 内核是一个免费、开源、单体、模块化、多任务、类 Unix 操作系统内核。
它是由 Linus Torvalds 于 1991 年为他的基于 i386 的 PC 构思和创建的,并且很快被用作 GNU 操作系统的内核,该操作系统是作为 UNIX 的免费替代品而创建的。
从那时起,它催生了大量的操作系统发行版,通常也称为 Linux。

检查已安装的 Linux 内核

以 root 用户身份连接到 Linux 服务器。

执行以下 rpm 命令,列出 Linux 操作系统上已安装的内核。

# rpm -q kernel
kernel-4.18.0-240.10.1.el8_3.x86_64
kernel-4.18.0-240.22.1.el8_3.x86_64
kernel-4.18.0-305.12.1.el8_4.x86_64

通常最新的 Linux 内核应该在操作系统上处于活动状态。
除非有人明确将默认内核设置为旧版本。

我们可以使用以下命令进行确认。

# uname -r
4.18.0-305.12.1.el8_4.x86_64
# grubby --default-kernel
/boot/vmlinuz-4.18.0-305.12.1.el8_4.x86_64

如果上述命令返回的不是最新的内核,那么我们必须为 GRUB 设置默认内核。

https://onitroad.com 更多教程

设置默认 Linux 内核

列出 /boot 目录中可用的 Linux 内核。

# ls /boot/vm*
/boot/vmlinuz-0-rescue-25d4accaa6754a5e97616dd5774f723b
/boot/vmlinuz-4.18.0-240.10.1.el8_3.x86_64
/boot/vmlinuz-4.18.0-240.22.1.el8_3.x86_64
/boot/vmlinuz-4.18.0-305.12.1.el8_4.x86_64

执行以下命令为 GRUB 设置默认内核。

# grubby --set-default /boot/vmlinuz-4.18.0-305.12.1.el8_4.x86_64
The default is /boot/loader/entries/25d4accaa6754a5e97616dd5774f723b-4.18.0-305.12.1.el8_4.x86_64.conf with index 0 and kernel /boot/vmlinuz-4.18.0-305.12.1.el8_4.x86_64
日期:2020-09-17 00:12:42 来源:oir作者:oir