Every time you update your CentOS Linux and the update includes a new kernel image update the system will not remove your old kernel but it will cumulatively add new kernel to the top of your Linux kernel installed list. Normally, this does not present any issue to your running system and you are not required to take any action to remove any old and unused kernel images.
Check /boot
The reason why you may wish to remove/uninstall unused kernel images is that you need to reduce disk usage space of your system, especially if your /boot mount point is mounted separately and has a limited disk space
$ df -h /boot/
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 331M 198M 112M 64% /boot
or you just simply like to reduce the number of titles on your GRUB boot list. The bellow commands will help you to remove any unused Linux kernel images from your CentOS Linux system.
Let’s start by listing all installed Linux kernel images:
# rpm -q kernel
kernel-3.10.0-229.4.2.el7.x86_64
kernel-3.10.0-229.el7.x86_64
kernel-3.10.0-229.20.1.el7.x86_64
kernel-3.10.0-229.11.1.el7.x86_64
kernel-3.10.0-327.3.1.el7.x86_64
Make sure you boot into the latest installed Kernel image. In this case it is kernel-3.10.0-327.3.1.el7 kernel image. Run uname command to confirm:
$ uname -r
3.10.0-327.3.1.el7.x86_64
Next, install yum-utils package which contains package-cleanup binary to be later used to uninstall old unused Linux kernel images. The yum-utils package is probably already installed, but if it’s not, you can install it by typing
# yum install -y yum-utils
At this stage we are ready to remove old Linux kernels using package-cleanup command. The --oldkernels
option means that we wish to remove old Kernel images, whereas the --count=1
option instructs the package-cleanup command to leave one old kernel untouched. Thus, after the execution of the below command the system will be left with one current up to date kernel and one unused kernel old kernel as a backup. Feel free to amend the count number to suit your needs:
# package-cleanup --oldkernels --count=1
The rest of old Linux kernel images should now be removed. Use rpm command to confirm:
# rpm -q kernel
kernel-3.10.0-229.20.1.el7.x86_64
kernel-3.10.0-327.3.1.el7.x86_64
– masterkenneth