Videos
I tried using this command:
package-cleanup --oldkernels --count=1
However, it didn't work as apparently on Redhat 8 it's a DNF-based shim rather than the original Yum command.
Is there an easy way to make the original Yum command work on Redhat 8? If not, what is the easiest way to remove old kernels from the boot menu options?
edit: Solved!
dnf remove $(dnf repoquery --installonly --latest-limit=-1 -q)
Check which kernel you are using currently
uname -r
Now run
dnf remove --oldinstallonly --setopt installonly_limit=1
Check that the kernels to be uninstalled are the ones you want gone. Complete the uninstall and Grub will be updated automatically. Just reboot and done.
Listing packages dnf list installed kernel*
[root@centos /]# dnf list installed kernel*
Installed Packages
kernel-core.x86_64 4.18.0-193.6.3.el8_2 @BaseOS
kernel-core.x86_64 4.18.0-193.14.2.el8_2 @BaseOS
kernel-core.x86_64 4.18.0-305.3.1.el8 @BaseOS
kernel-devel.x86_64 4.18.0-193.6.3.el8_2 @BaseOS
kernel-devel.x86_64 4.18.0-193.14.2.el8_2 @BaseOS
kernel-devel.x86_64 4.18.0-305.3.1.el8 @BaseOS
kernel-headers.x86_64 4.18.0-305.3.1.el8 @BaseOS
kernel-ml.x86_64 5.7.8-1.el8.elrepo @elrepo-kernel
kernel-ml.x86_64 5.8.0-1.el8.elrepo @elrepo-kernel
kernel-ml.x86_64 5.12.10-1.el8.elrepo @elrepo-kernel
kernel-ml-core.x86_64 5.7.8-1.el8.elrepo @elrepo-kernel
kernel-ml-core.x86_64 5.8.0-1.el8.elrepo @elrepo-kernel
kernel-ml-core.x86_64 5.12.10-1.el8.elrepo @elrepo-kernel
kernel-ml-devel.x86_64 5.7.8-1.el8.elrepo @elrepo-kernel
kernel-ml-modules.x86_64 5.7.8-1.el8.elrepo @elrepo-kernel
kernel-ml-modules.x86_64 5.8.0-1.el8.elrepo @elrepo-kernel
kernel-ml-modules.x86_64 5.12.10-1.el8.elrepo @elrepo-kernel
kernel-modules.x86_64 4.18.0-193.6.3.el8_2 @BaseOS
kernel-modules.x86_64 4.18.0-193.14.2.el8_2 @BaseOS
kernel-modules.x86_64 4.18.0-305.3.1.el8 @BaseOS
kernel-tools.x86_64 4.18.0-305.3.1.el8 @BaseOS
kernel-tools-libs.x86_64 4.18.0-305.3.1.el8 @BaseOS
[root@centos /]#
Searching the kernel packages rpm -qa | grep kernel
[root@centos /]# rpm -qa | grep kernel
kernel-core-4.18.0-305.3.1.el8.x86_64
kernel-core-4.18.0-193.6.3.el8_2.x86_64
kernel-core-4.18.0-193.14.2.el8_2.x86_64
kernel-tools-libs-4.18.0-305.3.1.el8.x86_64
kernel-ml-core-5.12.10-1.el8.elrepo.x86_64
kernel-ml-modules-5.7.8-1.el8.elrepo.x86_64
kernel-ml-5.12.10-1.el8.elrepo.x86_64
kernel-modules-4.18.0-193.6.3.el8_2.x86_64
kernel-ml-core-5.8.0-1.el8.elrepo.x86_64
kernel-ml-core-5.7.8-1.el8.elrepo.x86_64
kernel-4.18.0-193.14.2.el8_2.x86_64
kernel-devel-4.18.0-305.3.1.el8.x86_64
kernel-ml-5.8.0-1.el8.elrepo.x86_64
kernel-4.18.0-193.6.3.el8_2.x86_64
kernel-modules-4.18.0-193.14.2.el8_2.x86_64
kernel-devel-4.18.0-193.14.2.el8_2.x86_64
kernel-ml-devel-5.7.8-1.el8.elrepo.x86_64
kernel-headers-4.18.0-305.3.1.el8.x86_64
kernel-4.18.0-305.3.1.el8.x86_64
kernel-tools-4.18.0-305.3.1.el8.x86_64
kernel-ml-5.7.8-1.el8.elrepo.x86_64
kernel-ml-modules-5.8.0-1.el8.elrepo.x86_64
kernel-modules-4.18.0-305.3.1.el8.x86_64
kernel-ml-modules-5.12.10-1.el8.elrepo.x86_64
kernel-devel-4.18.0-193.6.3.el8_2.x86_64
[root@centos /]#
Classifying the packages in order to see packages target!
kernel-4.18.0-193.6.3.el8_2.x86_64
kernel-4.18.0-193.14.2.el8_2.x86_64
kernel-4.18.0-305.3.1.el8.x86_64
kernel-ml-5.7.8-1.el8.elrepo.x86_64
kernel-ml-5.8.0-1.el8.elrepo.x86_64
kernel-ml-5.12.10-1.el8.elrepo.x86_64
kernel-core-4.18.0-193.6.3.el8_2.x86_64
kernel-core-4.18.0-193.14.2.el8_2.x86_64
kernel-core-4.18.0-305.3.1.el8.x86_64
kernel-ml-core-5.7.8-1.el8.elrepo.x86_64
kernel-ml-core-5.8.0-1.el8.elrepo.x86_64
kernel-ml-core-5.12.10-1.el8.elrepo.x86_64
kernel-devel-4.18.0-193.14.2.el8_2.x86_64
kernel-devel-4.18.0-193.6.3.el8_2.x86_64
kernel-ml-devel-5.7.8-1.el8.elrepo.x86_64
kernel-modules-4.18.0-193.6.3.el8_2.x86_64
kernel-modules-4.18.0-193.14.2.el8_2.x86_64
kernel-modules-4.18.0-305.3.1.el8.x86_64
kernel-ml-modules-5.7.8-1.el8.elrepo.x86_64
kernel-ml-modules-5.8.0-1.el8.elrepo.x86_64
kernel-ml-modules-5.12.10-1.el8.elrepo.x86_64
kernel-tools-libs-4.18.0-305.3.1.el8.x86_64
kernel-headers-4.18.0-305.3.1.el8.x86_64
kernel-tools-4.18.0-305.3.1.el8.x86_64
If I'm interested in remove 5.7.8 version; I will need to do something like:
dnf remove kernel-ml-5.7.8-1.el8.elrepo.x86_64
dnf remove kernel-ml-core-5.7.8-1.el8.elrepo.x86_64
dnf remove kernel-ml-devel-5.7.8-1.el8.elrepo.x86_64
dnf remove kernel-ml-modules-5.7.8-1.el8.elrepo.x86_64
The method to select quickly the packages related to 5.7.8 to be removed: rpm -qa | grep ^kernel | grep 5\.7\.8
[root@centos /]# rpm -qa | grep ^kernel | grep 5\.7\.8
kernel-ml-modules-5.7.8-1.el8.elrepo.x86_64
kernel-ml-core-5.7.8-1.el8.elrepo.x86_64
kernel-ml-devel-5.7.8-1.el8.elrepo.x86_64
kernel-ml-5.7.8-1.el8.elrepo.x86_64
[root@centos /]#
Then dnf remove $(rpm -qa | grep ^kernel | grep 5\.7\.8) will remove all That I need!
[root@centos /]# dnf remove $(rpm -qa | grep ^kernel | grep 5\.7\.8)
Dependencies resolved.
=================================================================================
Package Arch Version Repository Size
=================================================================================
Removing:
kernel-ml x86_64 5.7.8-1.el8.elrepo @elrepo-kernel 0
kernel-ml-core x86_64 5.7.8-1.el8.elrepo @elrepo-kernel 64 M
kernel-ml-devel x86_64 5.7.8-1.el8.elrepo @elrepo-kernel 50 M
kernel-ml-modules x86_64 5.7.8-1.el8.elrepo @elrepo-kernel 23 M
Transaction Summary
=================================================================================
Remove 4 Packages
Freed space: 137 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-ml-5.7.8-1.el8.elrepo.x86_64 1/4
Erasing : kernel-ml-devel-5.7.8-1.el8.elrepo.x86_64 2/4
Erasing : kernel-ml-modules-5.7.8-1.el8.elrepo.x86_64 3/4
Running scriptlet: kernel-ml-modules-5.7.8-1.el8.elrepo.x86_64 3/4
Running scriptlet: kernel-ml-core-5.7.8-1.el8.elrepo.x86_64 4/4
Erasing : kernel-ml-core-5.7.8-1.el8.elrepo.x86_64 4/4
warning: file /lib/modules/5.7.8-1.el8.elrepo.x86_64/updates: remove failed: No such file or directory
Running scriptlet: kernel-ml-core-5.7.8-1.el8.elrepo.x86_64 4/4
/sbin/ldconfig: /etc/ld.so.conf.d/kernel-ml-5.12.10-1.el8.elrepo.x86_64.conf:6: hwcap directive ignored
/sbin/ldconfig: /etc/ld.so.conf.d/kernel-ml-5.8.0-1.el8.elrepo.x86_64.conf:6: hwcap directive ignored
Verifying : kernel-ml-5.7.8-1.el8.elrepo.x86_64 1/4
Verifying : kernel-ml-core-5.7.8-1.el8.elrepo.x86_64 2/4
Verifying : kernel-ml-devel-5.7.8-1.el8.elrepo.x86_64 3/4
Verifying : kernel-ml-modules-5.7.8-1.el8.elrepo.x86_64 4/4
Installed products updated.
Removed:
kernel-ml-5.7.8-1.el8.elrepo.x86_64
kernel-ml-core-5.7.8-1.el8.elrepo.x86_64
kernel-ml-devel-5.7.8-1.el8.elrepo.x86_64
kernel-ml-modules-5.7.8-1.el8.elrepo.x86_64
Complete!
[root@centos /]#
Thats all!

After I got: df -H /
[root@centos /]# df -H /
Filesystem Size Used Avail Use% Mounted on
/dev/nvme0n1p9 34G 9.2G 23G 29% /
[root@centos /]#
And df -H
[root@centos /]# df -H
Filesystem Size Used Avail Use% Mounted on
devtmpfs 8.2G 0 8.2G 0% /dev
tmpfs 8.2G 529M 7.7G 7% /dev/shm
tmpfs 8.2G 11M 8.2G 1% /run
tmpfs 8.2G 0 8.2G 0% /sys/fs/cgroup
/dev/nvme0n1p9 34G 9.2G 23G 29% /
/dev/nvme0n1p7 1.1G 447M 506M 47% /boot
/dev/nvme0n1p8 183G 73G 102G 42% /home
/dev/nvme0n1p10 26G 11G 13G 46% /var
/dev/nvme0n1p6 1.1G 7.6M 1.1G 1% /boot/efi
/dev/loop1 59M 59M 0 100% /var/lib/snapd/snap/core18/2074
/dev/loop0 102M 102M 0 100% /var/lib/snapd/snap/core/9665
/dev/loop2 66M 66M 0 100% /var/lib/snapd/snap/gtk-common-themes/1506
/dev/loop3 32M 32M 0 100% /var/lib/snapd/snap/snapd/8542
/dev/loop4 58M 58M 0 100% /var/lib/snapd/snap/core18/1880
/dev/loop5 34M 34M 0 100% /var/lib/snapd/snap/snapd/12398
/dev/loop7 105M 105M 0 100% /var/lib/snapd/snap/core/11316
/dev/loop6 65M 65M 0 100% /var/lib/snapd/snap/core20/1081
/dev/loop8 69M 69M 0 100% /var/lib/snapd/snap/gtk-common-themes/1515
tmpfs 1.7G 11M 1.7G 1% /run/user/1000
[root@centos /]#
And Lastly dnf list installed kernel*
[root@centos /]# dnf list installed kernel*
Installed Packages
kernel.x86_64 4.18.0-193.6.3.el8_2 @BaseOS
kernel.x86_64 4.18.0-193.14.2.el8_2 @BaseOS
kernel.x86_64 4.18.0-305.3.1.el8 @BaseOS
kernel-core.x86_64 4.18.0-193.6.3.el8_2 @BaseOS
kernel-core.x86_64 4.18.0-193.14.2.el8_2 @BaseOS
kernel-core.x86_64 4.18.0-305.3.1.el8 @BaseOS
kernel-devel.x86_64 4.18.0-193.6.3.el8_2 @BaseOS
kernel-devel.x86_64 4.18.0-193.14.2.el8_2 @BaseOS
kernel-devel.x86_64 4.18.0-305.3.1.el8 @BaseOS
kernel-headers.x86_64 4.18.0-305.3.1.el8 @BaseOS
kernel-ml.x86_64 5.8.0-1.el8.elrepo @elrepo-kernel
kernel-ml.x86_64 5.12.10-1.el8.elrepo @elrepo-kernel
kernel-ml-core.x86_64 5.8.0-1.el8.elrepo @elrepo-kernel
kernel-ml-core.x86_64 5.12.10-1.el8.elrepo @elrepo-kernel
kernel-ml-modules.x86_64 5.8.0-1.el8.elrepo @elrepo-kernel
kernel-ml-modules.x86_64 5.12.10-1.el8.elrepo @elrepo-kernel
kernel-modules.x86_64 4.18.0-193.6.3.el8_2 @BaseOS
kernel-modules.x86_64 4.18.0-193.14.2.el8_2 @BaseOS
kernel-modules.x86_64 4.18.0-305.3.1.el8 @BaseOS
kernel-tools.x86_64 4.18.0-305.3.1.el8 @BaseOS
kernel-tools-libs.x86_64 4.18.0-305.3.1.el8 @BaseOS
[root@centos /]#
and rpm -qa | grep kernel
[root@centos /]# rpm -qa | grep kernel
kernel-core-4.18.0-305.3.1.el8.x86_64
kernel-core-4.18.0-193.6.3.el8_2.x86_64
kernel-core-4.18.0-193.14.2.el8_2.x86_64
kernel-tools-libs-4.18.0-305.3.1.el8.x86_64
kernel-ml-core-5.12.10-1.el8.elrepo.x86_64
kernel-ml-5.12.10-1.el8.elrepo.x86_64
kernel-modules-4.18.0-193.6.3.el8_2.x86_64
kernel-ml-core-5.8.0-1.el8.elrepo.x86_64
kernel-4.18.0-193.14.2.el8_2.x86_64
kernel-devel-4.18.0-305.3.1.el8.x86_64
kernel-ml-5.8.0-1.el8.elrepo.x86_64
kernel-4.18.0-193.6.3.el8_2.x86_64
kernel-modules-4.18.0-193.14.2.el8_2.x86_64
kernel-devel-4.18.0-193.14.2.el8_2.x86_64
kernel-headers-4.18.0-305.3.1.el8.x86_64
kernel-4.18.0-305.3.1.el8.x86_64
kernel-tools-4.18.0-305.3.1.el8.x86_64
kernel-ml-modules-5.8.0-1.el8.elrepo.x86_64
kernel-modules-4.18.0-305.3.1.el8.x86_64
kernel-ml-modules-5.12.10-1.el8.elrepo.x86_64
kernel-devel-4.18.0-193.6.3.el8_2.x86_64
[root@centos /]#