dpkg --list | egrep -i --color 'linux-image|linux-headers'
returns:
ii linux-headers-4.15.0-70 4.15.0-70.79 all Header files related to Linux kernel version 4.15.0 ii linux-headers-4.15.0-70-generic 4.15.0-70.79 amd64 Linux kernel headers for version 4.15.0 on 64 bit x86 SMP ii linux-headers-4.15.0-72 4.15.0-72.81 all Header files related to Linux kernel version 4.15.0 ii linux-headers-4.15.0-72-generic 4.15.0-72.81 amd64 Linux kernel headers for version 4.15.0 on 64 bit x86 SMP ii linux-headers-generic 4.15.0.72.74 amd64 Generic Linux kernel headers rc linux-image-4.15.0-29-generic 4.15.0-29.31 amd64 Signed kernel image generic rc linux-image-4.15.0-55-generic 4.15.0-55.60 amd64 Signed kernel image generic rc linux-image-4.15.0-58-generic 4.15.0-58.64 amd64 Signed kernel image generic rc linux-image-4.15.0-60-generic 4.15.0-60.67 amd64 Signed kernel image generic rc linux-image-4.15.0-62-generic 4.15.0-62.69 amd64 Signed kernel image generic rc linux-image-4.15.0-64-generic 4.15.0-64.73 amd64 Signed kernel image generic rc linux-image-4.15.0-65-generic 4.15.0-65.74 amd64 Signed kernel image generic rc linux-image-4.15.0-66-generic 4.15.0-66.75 amd64 Signed kernel image generic rc linux-image-4.15.0-69-generic 4.15.0-69.78 amd64 Signed kernel image generic ii linux-image-4.15.0-70-generic 4.15.0-70.79 amd64 Signed kernel image generic ii linux-image-4.15.0-72-generic 4.15.0-72.81 amd64 Signed kernel image generic ii linux-image-generic 4.15.0.72.74 amd64 Generic Linux kernel image
sudo apt --purge remove linux-image-3.12.0-27-generic
The purge removes packages and any configuration files are deleted too.
On newer system all obsolete kernels and headers should automatically be flagged as not being needed, and thus can be purged with the following single command:
sudo apt --purge autoremove
returns:
Reading package lists... Done Building dependency tree Reading state information... Done The following packages will be REMOVED: linux-headers-3.12.0-27* linux-headers-3.12.0-27-virtual* 0 upgraded, 0 newly installed, 2 to remove and 0 not upgraded. After this operation, 64.7 MB disk space will be freed. Do you want to continue [Y/n]? y (Reading database ... 218493 files and directories currently installed.) Removing linux-headers-3.12.0-27-virtual ... Removing linux-headers-3.12.0-27 ...
sudo dpkg --list | grep linux-image
returns:
rc linux-image-4.15.0-29-generic 4.15.0-29.31 amd64 Signed kernel image generic rc linux-image-4.15.0-55-generic 4.15.0-55.60 amd64 Signed kernel image generic rc linux-image-4.15.0-58-generic 4.15.0-58.64 amd64 Signed kernel image generic rc linux-image-4.15.0-60-generic 4.15.0-60.67 amd64 Signed kernel image generic rc linux-image-4.15.0-62-generic 4.15.0-62.69 amd64 Signed kernel image generic rc linux-image-4.15.0-64-generic 4.15.0-64.73 amd64 Signed kernel image generic rc linux-image-4.15.0-65-generic 4.15.0-65.74 amd64 Signed kernel image generic rc linux-image-4.15.0-66-generic 4.15.0-66.75 amd64 Signed kernel image generic rc linux-image-4.15.0-69-generic 4.15.0-69.78 amd64 Signed kernel image generic ii linux-image-4.15.0-70-generic 4.15.0-70.79 amd64 Signed kernel image generic ii linux-image-4.15.0-72-generic 4.15.0-72.81 amd64 Signed kernel image generic ii linux-image-generic 4.15.0.72.74 amd64 Generic Linux kernel image
sudo x=$(dpkg --list | grep -i linux-image | grep ^rc| awk '{ print $2}') sudo echo "$x" sudo apt --purge remove $x
sudo dpkg --list | grep linux-image
returns:
ii linux-image-4.15.0-70-generic 4.15.0-70.79 amd64 Signed kernel image generic ii linux-image-4.15.0-72-generic 4.15.0-72.81 amd64 Signed kernel image generic ii linux-image-generic 4.15.0.72.74 amd64 Generic Linux kernel image
Note that all rc states have gone.
Get a list of kernels.
# Get kernel version. v="$(uname -r | awk -F '-virtual' '{ print $1}')" # Create ignore list to avoid deleting the running kernel. i="linux-headers-virtual|linux-image-virtual|linux-headers-${v}|linux-image-$(uname -r)" # Display the list. echo dpkg --list | egrep -i 'linux-image|linux-headers' | awk '/ii/{ print $2}' | egrep -v "$i"
To delete it simply run it as follows:
v="$(uname -r | awk -F '-virtual' '{ print $1}')" i="linux-headers-virtual|linux-image-virtual|linux-headers-${v}|linux-image-$(uname -r)" apt --purge remove $(dpkg --list | egrep -i 'linux-image|linux-headers' | awk '/ii/{ print $2}' | egrep -v "$i")
sudo apt-get purge $(dpkg -l linux-{image,headers}-"[0-9]*" | awk '/ii/{print $2}' | grep -ve "$(uname -r | sed -r 's/-[a-]+//')")
sudo purge-old-kernels