Low Disk Space on “boot”

If you have ever got this popup warning on CentOS/RedHat 7 this post may help. This happened to me and when I looked at “/boot” it looked like:

You can see there is the current kernel and three previous kernels to choose from:

CentOS Linux (3.10.0-957.27.2.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-957.21.3.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-957.el7.x86_6) 7 (Core)
CentOS Linux (0-rescue-71c11ed5c0aa41ad909ab96d4c6ad395) 7 (Core)

This aligns with the 4 options you have at boot:

Next check you have the RPM “yum-utils” installed. Then run the following which is included in yum-utils:

package-cleanup –oldkernels –count=1

This will automatically delete and free up space by erasing old kernels and leaving with the current one plus the “rescue” kernel. When this runs you will see something that includes the following:

Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Erasing    : kernel.x86_64                                                                                                                 1/4 
  Erasing    : kernel-devel.x86_64                                                                                                           2/4 
  Erasing    : kernel.x86_64                                                                                                                 3/4 
  Erasing    : kernel-devel.x86_64                                                                                                           4/4 
  Verifying  : kernel-devel-3.10.0-957.el7.x86_64                                                                                            1/4 
  Verifying  : kernel-3.10.0-957.el7.x86_64                                                                                                  2/4 
  Verifying  : kernel-devel-3.10.0-957.21.3.el7.x86_64                                                                                       3/4 
  Verifying  : kernel-3.10.0-957.21.3.el7.x86_64                                                                                             4/4 

Removed:
  kernel.x86_64 0:3.10.0-957.el7                     kernel.x86_64 0:3.10.0-957.21.3.el7          kernel-devel.x86_64 0:3.10.0-957.el7         
  kernel-devel.x86_64 0:3.10.0-957.21.3.el7         

Complete!

Now you should fine the “/boot” is much emptier:

So when you reboot, you likewise only get the two kernel boot options:

Permanent fix

To stop this happening edit the file “/etc/yum.conf” and look for the line:

installonly_limit=5

Change the number to the one you want. Note that if you put either 0 or 1 then it will be interpreted as unlimited. So for practical purposes the minimum is 2. I set mine to 2.

Resources

Linux Config: How to remove old unused kernels on CentOS Linux
https://linuxconfig.org/how-to-remove-old-unused-kernels-on-centos-linux