How to: Linux delete or remove kernel
Q. I have multiple versions installed and I need to save disk space. I am using Cent OS Linux. How can I delete or remove a Linux kernel from my Linux distribution ?
A. Linux Kernel and related files are stored in following locations:
=> /boot - Stores actual kernel and related file such system man and initrd images,
=> /etc or /boot/grub - Stores grub.conf file (most distro use /boot/grub these days).
=> /iib/modules/KERNEL-VERSION/* - Linux device drivers (modules)
If kernel is installed using binary package system such as rpm, yum, up2date, apt-get etc you can remove with following commands:
Rpm based distro - Red Hat/CentOS/Fedora Core/Suse Linux
First find out all installed kernel version with following command:
# rpm -qa | grep kernel-smp
or
# rpm -qa | grep kernel
Output:
kernel-smp-2.6.9-42.EL
kernel-smp-2.6.9-42.0.3.EL
kernel-smp-2.6.9-42.0.8.EL
I've total 3 different kernel installed. To remove kernel-smp-2.6.9-42.EL type command:
# rpm -e kernel-smp-2.6.9-42.EL
OR
# rpm -vv -e kernel-smp-2.6.9-42.EL
.deb based distro - Debian or Ubuntu Linux
Again find out all installed kernel version:
$ dpkg --list | grep kernel-image
Output:
ii kernel-image-2.4.27-2-386 2.4.27-10sarge1 Linux kernel image for version 2.4.27 on 386
ii kernel-image-2.6.8-2-686 2.6.8-16sarge1 Linux kernel image for version 2.6.8 on PPro
Now remove kernel-image-2.4.27-2-386 with apt-get command itself:
# apt-get remove kernel-image-2.4.27-2-386
OR
$ sudo apt-get remove kernel-image-2.4.27-2-386
If you have custom compiled kernel you need to remove following files/dirs:
- /boot/vmlinuz*KERNEL-VERSION*
- /boot/initrd*KERNEL-VERSION*
- /boot/System-map*KERNEL-VERSION*
- /boot/config-*KERNEL-VERSION*
- /lib/modules/*KERNEL-VERSION*/
- Update grub configuration file /etc/grub.conf or /boot/grub/menu.lst to point to correct kernel version.