How to suppress older kernels in Ubuntu in one command line

Pierre FrançoisSenior consultant
CERTIFIED EXPERT
Published:
After running Ubuntu some time, you will be asked to download updates for fixing bugs and security updates.

All the packages you download replace the previous ones, except for the kernel, also called "linux-image". This is due to the fact that with a bad kernel, you can't boot your system. So the update process doesn't erase the previous version of linux-image, and the boot loader (GRUB in the case of Ubuntu), gives you the choice at boot time to choose into which kernel you want to boot.

As the list of older images begins to grow, and in order to save room on your disk drive, you may be interested to erase the older versions, and if possible, with only one command line.

The command shell is able to do that. Just open a terminal (Applications > Accessories > Terminal), copy the line below and past it at the prompt of your terminal:

dpkg -l linux-* | awk '/^ii/{ print $2}' | grep -v -e `uname -r | cut -f1,2 -d"-"` | grep -e [0-9] | xargs sudo apt-get -y remove

And that's it. You will be asked to enter your password for running some command that must be executed as super user.

You will find a detailed explanation of the logic behind this at http://tuxtweaks.com/2010/10/remove-old-kernels-in-ubuntu-with-one-command/ 

This works on all Ubuntu and Debian systems, but you can adapt it for Fedora or RedHat by changing the command "apt-get -y remove" by its equivalent, which is "yum".
3
3,644 Views
Pierre FrançoisSenior consultant
CERTIFIED EXPERT

Comments (2)

Pierre FrançoisSenior consultant
CERTIFIED EXPERT

Author

Commented:
I wish to add two ideas:

This command erases all the kernels excepted the running one. Before running this command, be sure you are running the most recent kernel at that moment, rebooting first if necessary. Anyway, the script is prudent enough to avoid erasing the current running kernel, so don't be afraid.
If you are happy with this command line, you can save it as an executable shell file in the bin directory of your home directory.
There is a much easier way.  Ubuntu Tweak 0.8.7 (http://ubuntu-tweak.com/).  It works even with 15.10.  It also has one major feature I find very useful as I use PDF Studio Pro 10 (full Adobe equivalent) for all my PDF work.  Ubuntu Tweak lets you set file associations that you cannot set otherwise, except with some difficulty.

John

Have a question about something in this article? You can receive help directly from the article author. Sign up for a free trial to get started.

Get access with a 7-day free trial.
You Belong in the World's Smartest IT Community