For LVM, encrypted, or limited-storage systems, you need to regularly remove old kernels to prevent your computer (/boot partition) from running out of storage space.
Removing old kernels is easy. You can do it manually, or set unattended-upgrades to do it automatically. For details, open terminal from App Launcher or via Ctrl+Alt+T shortcut keys, and follow the steps below:
Remove Automatically Installed Kernels:
1. To remove the kernels that were automatically installed via regular system updates, open terminal and run:
sudo apt autoremove --purge
It will ask you to type in user password and then remove old kernels as well as other automatically installed packages that are no longer needed.
2. To enable automatic removing of old kernels:
sudo dpkg-reconfigure unattended-upgrades
sudo apt install gksu
):
gksudo gedit /etc/apt/apt.conf.d/50unattended-upgrades
When the file opens, uncomment the following line and change the value to true:
//Unattended-Upgrade::Remove-Unused-Dependencies "false";
So it looks like:
Remove Manually Installed Kernels:
If you install latest kernels from Kernel PPA, or build your own kernels with patches, a “purge-old-kernels” script is the best and the easiest way to remove old kernels.
1. The script is maintained in byobu package, so first install it via:
sudo apt install byobu
2. Then run the script regularly to remove old kernels:
sudo purge-old-kernels
Remove Old Kernels via DPKG
If your /boot partition has already full while doing an upgrade or package install, and apt
(the script above uses apt) can’t remove packages due to broken dependency, here you can manually find out the old kernel packages and remove them via DPKG:
1. Run command to check out current kernel and DON’T REMOVE it:
uname -r
2. List all kernels excluding the current booted:
dpkg -l | tail -n +6 | grep -E 'linux-image-[0-9]+' | grep -Fv $(uname -r)
Example output:
rc linux-image-4.4.0-15-generic 4.4.0-15.31 amd64 Linux kernel image for version 4.4.0 on 64 bit x86 SMP ii linux-image-4.4.0-18-generic 4.4.0-18.34 amd64 Linux kernel image for version 4.4.0 on 64 bit x86 SMP rc linux-image-4.6.0-040600rc3-generic 4.6.0-040600rc3.201604120934 amd64 Linux kernel image for version 4.6.0 on 64 bit x86 SMP
There will be three status in the listed kernel images:
- rc: means it has already been removed.
- ii: means installed, eligible for removal.
- iU: DON’T REMOVE. It means not installed, but queued for install in apt.
3. Remove old kernel images in status ii, it’s “linux-image-4.4.0-18-generic” in the example above:
sudo dpkg --purge linux-image-4.4.0-18-generic
If the command fails, remove the dependency packages that the output tells you via sudo dpkg --purge PACKAGE
.
And also try to remove the respective header and common header packages (Don’t worry if the command fails):
sudo dpkg --purge linux-image-4.4.0-18-header linux-image-4.4.0-18
Finally you may fix the apt broken dependency via command:
sudo apt -f install