Clean ubuntu
This page explains how to remove old and un-necessary kernels as well as cleaning the /boot partition.
Contents
Know the current Kernel version
Get your current kernel version
uname -r
You should see something like:
3.13.0-32-generic
Installed kernels
List kernels that can be removed
The following command will return the list of packages that can be removed:
dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r|sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d'
Source: Linux pratique no94, FR, mars|avril 2016
List of all kernels (including current one)
Get a list of installed kernels
dpkg --list 'linux-image*'
You should see something like:
/ | Name | Version | Architecture | Description |
---|---|---|---|---|
un | linux-image | <none> | <none> | (no description available) |
un | linux-image-3.0 | <none> | <none> | (no description available) |
rc | linux-image-3.13.0-24-generic | 3.13.0-24.47 | amd64 | Linux kernel image for version 3.13.0 on 64 bit x86 SMP |
ii | linux-image-3.13.0-30-generic | 3.13.0-30.55 | amd64 | Linux kernel image for version 3.13.0 on 64 bit x86 SMP |
ii | linux-image-3.13.0-32-generic | 3.13.0-32.57 | amd64 | Linux kernel image for version 3.13.0 on 64 bit x86 SMP |
rc | linux-image-extra-3.13.0-24-generic | 3.13.0-24.47 | amd64 | Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP |
ii | linux-image-extra-3.13.0-30-generic | 3.13.0-30.55 | amd64 | Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP |
ii | linux-image-extra-3.13.0-32-generic | 3.13.0-32.57 | amd64 | Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP |
ii | linux-image-generic | 3.13.0.32.38 | amd64 | Generic Linux kernel image |
Delete kernels
Automatic deletion
# list the package to remove
dpkg -l | awk '{print $2}' | grep -E "linux-(image|headers)-$(uname -r | cut -d- -f1).*" | grep -v $(uname -r | sed -r -e 's:-[a-z]+.*::')
# remove all old kernels at once
apt-get purge $(dpkg -l | awk '{print $2}' | grep -E "linux-(image|headers)-$(uname -r | cut -d- -f1).*" | grep -v $(uname -r | sed -r -e 's:-[a-z]+.*::'))
# update grub
update-grub
Source: Linux pratique no94, FR, mars|avril 2016
Manual deletion
Delete the kernels you don't want/need anymore
# Remove old kernels (repeat for each version)
OLD_KRNL_VERSION=4.4.0-21
apt-get remove --purge linux-headers-${OLD_KRNL_VERSION}* linux-image-${OLD_KRNL_VERSION}* linux-image-extra-${OLD_KRNL_VERSION}*
# at the end update Grub
update-grub
set OLD_KRNL_VERSION to the version of the kernel you want to remove.