🌐
Red Hat
access.redhat.com › solutions › 1227
What is the proper method to remove old kernels from a Red Hat Enterprise Linux system? - Red Hat Customer Portal
December 10, 2025 - How can I remove old kernel packages from a Red Hat Enterprise Linux system? Two kernel packages are appearing in my system, how to remove the older kernel package? My /boot directory is getting full, how do I remove old kernels? # df Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/VolGroup00-LogVol00 14804452 7006156 7046272 50% / /dev/sda1 101086 101086 0 100% /boot none 127332 0 127332 0% /dev/shm
🌐
TecMint
tecmint.com › home › linux distros › centos › how to delete old unused kernels in centos, rhel and fedora
How to Delete Old Unused Kernels in CentOS, RHEL and Fedora
September 8, 2017 - In this article, we will explain how to safely remove old unused kernel images on CentOS, RHEL and Fedora systems. It is important to update kernel before removing.
🌐
YallaLabs
yallalabs.com › home › how to remove old unused kernels on centos / rhel
How to remove old unused kernels on CentOS / RHEL - YallaLabs
June 14, 2020 - # package-cleanup --oldkernels --count=2 Loaded plugins: fastestmirror --> Running transaction check ---> Package kernel.x86_64 0:3.10.0-327.36.3.el7 will be erased ---> Package kernel.x86_64 0:3.10.0-514.2.2.el7 will be erased --> Finished ...
🌐
Maalavs Blog
blogs.maalavs.com › linux › linux-troubleshoot › linux-rhel-7-kernel-cleanup-and-removal-process
LINUX RHEL 7 Kernel Cleanup and Removal Process - Maalavs Blog
February 24, 2025 - rpm -qa | grep -e '\.el[67]' | grep -vE '^(gpg-pubkey|libmodulemd|katello-ca-consumer)' | sort >> rhel7.txt cat rhel7.txt ... /usr/lib/kernel/install.d/51-dracut-rescue.install add "$(uname -r)" /boot "/boot/vmlinuz-$(uname -r)" Verify if any old kernels remain in the bootloader:
🌐
Linux Tips
linux-tips.us › home › remove unused kernels from rhel
Remove Unused Kernels From RHEL • Linux Tips
September 11, 2023 - There’s nothing more to it. The command will automatically remove older kernels at the level you decided. You can keep the most recent three kernels, four kernels, or however many kernels you want. It’s not terribly complex. I don’t do a whole lot of RHEL articles, but it’s nice to at least write one here and there.
🌐
Medium
medium.com › @jaine.mayank › how-to-remove-the-old-linux-kernel-from-rhel8-centos8-640c0d07ec2c
How to remove the old Linux kernel from RHEL8/CentOS8? | by Mayank Jain | Medium
July 8, 2023 - Now we will check the current kernel which is used by VM by running the below command ... The above command will ask for confirmation to remove the kernel, press y and confirm it or you can add an argument in dnf remove command as -y
🌐
Linux.org
linux.org › home › forums › general linux forums › general linux topics
Trying to remove old kernels - but receiving conflicting information. | Linux.org
July 29, 2024 - Value 1 is explicitly not allowed since it complicates kernel upgrades due to protection of the running kernel from removal. Click to expand... ... Old kernels bothers none and some times they are the only way to run your computer when the new kernel go bad. If you want to fix something ain't broken go ahead ... RHEL/Rocky Linux are configured to automatically only keep 3 kernels by default and will removed kernels that are older than those three automatically.
🌐
Techoism
techoism.com › remove-old-kernels-rhel
How to Remove Old Kernels on CentOS/RHEL 6/7
[root@srv ~]# package-cleanup --oldkernels --count=2 Loaded plugins: fastestmirror --> Running transaction check ---> Package kernel.x86_64 0:3.10.0-957.el7 will be erased --> Finished Dependency Resolution Dependencies Resolved =============================================================...
Find elsewhere
🌐
OSTechNix
ostechnix.com › home › linux › linux kernel › how to remove old unused linux kernels
How To Remove Old Unused Linux Kernels - OSTechNix
February 17, 2024 - If an older version is functional, the command will unsuccessfully try to remove it. If you're using an older version of CentOS/RHEL, you can use the package-cleanup utility from the yum-utils package to remove old kernel versions.
🌐
GoLinuxCloud
golinuxcloud.com › home › how to properly remove old kernels rhel/centos 8
How to properly remove old kernels RHEL/CentOS 8 | GoLinuxCloud
January 1, 2024 - # package-cleanup --oldkernels --count=2 package-cleanup has to be executed with one of the options: --dupes, --leaves, --orphans, --problems or --cleandupes · Now we can use dnf with installonly_limit and --oldinstallonly to remove old kernel ...
🌐
MagnetByte
magnetbyte.com › how-to-safely-remove-old-kernels-from-rhel-linux
How to Safely Remove Old Kernels from RHEL: Complete Guide
August 6, 2025 - The yum and dnf tools include checks and safeguards, helping prevent accidental removal of essential components or the running kernel. Using rpm -e directly is only advised for older systems (RHEL 3/4), and with utmost caution.
🌐
Reddit
reddit.com › r/redhat › remove old kernels in redhat 8?
r/redhat on Reddit: Remove old kernels in Redhat 8?
July 18, 2019 -

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)
🌐
Dotlinux
dotlinux.net › blog › how-to-delete-old-unused-kernels-in-centos-rhel-and-fedora
How to Delete Old Unused Kernels in CentOS, RHEL, and Fedora
# For RHEL/CentOS 7 sudo yum remove kernel-3.10.0-1160.el7.x86_64 kernel-core-3.10.0-1160.el7.x86_64 kernel-devel-3.10.0-1160.el7.x86_64 · Note: Always include kernel-core and kernel-devel (if installed) to fully remove kernel-related files.
🌐
GeeksforGeeks
geeksforgeeks.org › linux-unix › how-to-uninstall-kernel-from-linux-remove-old-kernel-versions
How to Uninstall Kernel from Linux (Remove Old Kernel Versions) - GeeksforGeeks
July 23, 2025 - Above command lists all installed RPM packages on your system that contain the term "kernel" in their name. ... For Ubuntu users, the `apt `command is a more user-friendly alternative to apt-get. To remove or delete an old kernel, you can use:
🌐
CentLinux
centlinux.com › home › linux os › how to remove old linux kernels
How to remove Old Linux Kernels | CentLinux
March 1, 2026 - Learn how to remove old Linux kernels safely to free up disk space and keep your system organized. Follow our step-by-step guide to clean up unused kernels
🌐
Medium
leosaa.medium.com › remove-old-kernel-packages-in-rhel-8-52cee606656
Remove old kernel packages in RHEL 8 | by Leo Saavedra | Medium
February 26, 2021 - [buser@lautaro ~]$ rpm -qa | grep kernel- kernel-tools-4.18.0-240.15.1.el8_3.x86_64 kernel-4.18.0-240.el8.x86_64 kernel-core-4.18.0-240.15.1.el8_3.x86_64 kernel-core-4.18.0-240.el8.x86_64 kernel-tools-libs-4.18.0-240.15.1.el8_3.x86_64 kernel-modules-4.18.0-240.15.1.el8_3.x86_64 kernel-4.18.0-240.15.1.el8_3.x86_64 kernel-modules-4.18.0-240.el8.x86_64 · Then we have to remove the oldest one and keep only 1
🌐
mPossible site
mpossiblesite.wordpress.com › 2018 › 06 › 11 › remove-old-kernels-from-redhat-7-4-centos-7
Remove old kernels from Redhat 7.4 / CentOS 7 – mPossible site
June 11, 2018 - Whenever we upgrade package by default all old kernel images still be available in RedHat / CentOS Linux. In case you want to remove old kernels safely. Follow this procedure. Step 1: First check, do you have any old kernel images on your RedHat / CentOS system rpm -q kernel Step 2: Install yum-utils…
Top answer
1 of 2
1

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.

2 of 2
0

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 /]# 
🌐
2DayGeek
2daygeek.com › home › how to safely remove old/unused kernels in rhel/centos/fedora
How To Safely Remove Old/Unused Kernels In RHEL/CentOS/Fedora | 2DayGeek
February 8, 2020 - DNF working straight forward compare ... as a backup), you have to run the following command. $ sudo dnf remove $(dnf repoquery --installonly --latest-limit -2 -q) Dependencies resolved....
🌐
TutorialsPoint
tutorialspoint.com › article › how-to-delete-old-unused-kernels-in-centos-rhel-and-fedora
How to Delete Old Unused Kernels in CentOS, RHEL and Fedora?
March 17, 2026 - To remove a specific old kernel, use the appropriate package manager for your distribution ? ... For easier management, you can configure automatic kernel cleanup. On CentOS/RHEL 8+ and Fedora, set the number of kernels to keep ?