如果更新了 Linux 操作系統,那麼你會注意到,每次升級 Linux 內核後,GRUB 菜單都會添加一個新的引導條目,同時保持以前的條目不變。本文介紹如何刪掉多餘的內核。 |
默認情況下 yum
包管理器最多安裝 3 個版本的 Linux 內核。因此,內核引導條目僅限於 3 個。
執行以下 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
列出 /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 內核始終由 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 內核。
本文原創地址:https://www.linuxprobe.com/centos8-del-old-kernel.html