如果更新了 Linux 操作系统,那么你会留神到,每次降级 Linux 内核后,GRUB 菜单都会增加一个新的疏导条目,同时放弃以前的条目不变。本文介绍如何删掉多余的内核。

默认状况下 yum 包管理器最多装置 3 个版本的 Linux 内核。因而,内核疏导条目仅限于 3 个。查看已装置的 Linux 内核执行以下 yum 命令,列出 Linux 操作系统上已装置的内核。[root@localhost ~]# rpm -q kernel
kernel-4.18.0-80.11.2.el8_0.x86_64
kernel-4.18.0-305.12.1.el8_4.x86_64


通常最新的 Linux 内核应该在操作系统上处于活动状态。除非明确将默认内核设置为旧版本。能够应用uname和grubby命令进行确认以后的内核版本。[root@localhost ~]# uname -r
4.18.0-305.12.1.el8_4.x86_64
[root@localhost ~]# grubby --default-kernel
/boot/vmlinuz-4.18.0-305.12.1.el8_4.x86_64
http://www.dzwww.com/synr/syc...
http://www.dzwww.com/synr/syc...
https://www.51cto.com/it/news...

设置默认 Linux 内核列出 /boot 目录中可用的 Linux 内核。[root@localhost ~]# ls -1 /boot/vmlinuz-*
/boot/vmlinuz-0-rescue-6d19da3ce9f3444dbb62aa3fe94e2836
/boot/vmlinuz-4.18.0-240.15.1.el8_3.x86_64
/boot/vmlinuz-4.18.0-305.12.1.el8_4.x86_64
/boot/vmlinuz-4.18.0-80.11.2.el8_0.x86_64


执行以下命令为 GRUB 设置默认内核。[root@localhost ~]# grubby --set-default /boot//boot/vmlinuz-4.18.0-305.12.1.el8_4.x86_64
The default is /boot/loader/entries/6d19da3ce9f3444dbb62aa3fe94e2836-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


删除旧的 Linux 内核默认状况下,Linux 内核始终由 Yum 包管理器独自装置,同时放弃旧版本残缺以提供后备反对。此行为由两个 Yum 包管理器指令管制。installonlypkgs - 包管理器永远不会更新以空格分隔的包列表。installonly_limit - installonlypkgs 指令中列出的任何单个包能够同时装置的最大版本数。查看installonly_limit指令的以后值:[root@localhost ~]# grep limit /etc/dnf/dnf.conf
installonly_limit=3


应用上面命令删除旧版本的 Linux 内核。[root@localhost ~]# dnf -y remove --oldinstallonly --setopt installonly_limit=1 kernel


可能会留神到,咱们并没有更改 dnf.conf 文件中的 installonly_limit参数的值,而是在命令行中长期只批改参数。重启零碎查看是否删掉多余的内核了。

总结在本文中学习了如何在 CentOS 8 中平安地删除旧的 Linux 内核。