# Free disk space when `/boot` is full (Ubuntu) ## TL;DR ``` dpkg -l linux-image* uname -r sudo apt-get remove linux-image-2.6.32-{21,37,38,39,40,41,42,43,44}-server sudo apt-get autoremove ``` This morning, I noticed New Relic that the `/boot` disk was almost full on several of our servers. It turns out that when the old kernel images are left on the disk after a kernel update. The solution is to delete old kernels that we don't need anymore. ## 1. Find packages to delete. You can safely delete all but the latest package that matches the pattern `linux-image-2.6.32-[0-9][0-9]-server`. Leave `linux-image-2.6.32-45-server` on your system because you will need it to reboot! ``` $ dpkg -l linux-image* Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Description +++-=============================================-=============================================-========================================================================================================== un linux-image (no description available) un linux-image-2.6 (no description available) ii linux-image-2.6.32-21-server 2.6.32-21.32 Linux kernel image for version 2.6.32 on x86_64 ii linux-image-2.6.32-37-server 2.6.32-37.81 Linux kernel image for version 2.6.32 on x86_64 ii linux-image-2.6.32-38-server 2.6.32-38.83 Linux kernel image for version 2.6.32 on x86_64 ii linux-image-2.6.32-39-server 2.6.32-39.86 Linux kernel image for version 2.6.32 on x86_64 ii linux-image-2.6.32-40-server 2.6.32-40.87 Linux kernel image for version 2.6.32 on x86_64 ii linux-image-2.6.32-41-server 2.6.32-41.91 Linux kernel image for version 2.6.32 on x86_64 ii linux-image-2.6.32-42-server 2.6.32-42.96 Linux kernel image for version 2.6.32 on x86_64 ii linux-image-2.6.32-43-server 2.6.32-43.97 Linux kernel image for version 2.6.32 on x86_64 ii linux-image-2.6.32-44-server 2.6.32-44.98 Linux kernel image for version 2.6.32 on x86_64 ii linux-image-2.6.32-45-server 2.6.32-45.104 Linux kernel image for version 2.6.32 on x86_64 ii linux-image-server 2.6.32.45.52 Linux kernel image on Server Equipment. ``` ## 2. Identify the kernel version you are currenlty running DON'T delete this kernel image! And if it's not the latest, don't delete the latest one either. ``` $ uname -r 2.6.32-45-server ``` ## 3. Delete the old kernels. Removing the old kernels is the same as removing any other package. I'm using shell expansion for the version numbers to save typing. It will prompt you with a list of packages that will be removed, so you can double check the list before continuing. ``` sudo apt-get remove linux-image-2.6.32-{21,37,38,39,40,41,42,43,44}-server ``` ## 4. Remove dependencies. There are some dependencies left on the system after removing the old kernels. Fortunately, you can easily clean these up, too. ``` sudo apt-get autoremove ```