ubuntu:kernel:delete_old_kernel_images
Table of Contents
Ubuntu - Kernel - Delete Old Kernel Images
List all installed Linux kernel images
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
Delete unwanted and unused kernel images
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 ...
Delete kernel packages in remove/deinstall state
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
- rc: means package is in remove/deinstall state and only config file exists.
- ii: means package is in install state and it is 100% installed on the system.
Remove all linux-image packages in rc state
sudo x=$(dpkg --list | grep -i linux-image | grep ^rc| awk '{ print $2}') sudo echo "$x" sudo apt --purge remove $x
Recheck kernel package state
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.
Deleting all old kernels easily
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")
Easy way to delete all old kernels
sudo apt-get purge $(dpkg -l linux-{image,headers}-"[0-9]*" | awk '/ii/{print $2}' | grep -ve "$(uname -r | sed -r 's/-[a-]+//')")
Simple way to delete all old kernels
sudo purge-old-kernels
ubuntu/kernel/delete_old_kernel_images.txt · Last modified: 2020/07/15 09:30 by 127.0.0.1