Thursday, 14 June 2012

Cleaning up old Ubuntu kernels from /boot

My Ubuntu system told me today that it was running quite low on room in /boot. I searched around for what to do about that, and found this answer on Ask Ubuntu. It turns out that when kernel updates are applied, old kernels are left lying around in /boot.
So what to do? It's quite simple:

  1. Ensure you don't have a restart pending (Linux can update just about anything without rebooting...except the kernel). If you do, restart.
  2. Check to see what kernel you're using with uname -a:
    $ uname -a
    Linux forge 3.0.0-21-generic #35-Ubuntu SMP Fri May 25 17:57:41 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
    That's telling me that I'm using kernel 3.0.0-21-generic.
  3. List what kernels you have installed:
    $ sudo dpkg -l linux-image-\* | grep ^ii
    ii  linux-image-3.0.0-16-generic  3.0.0-16.29  Linux kernel image for version 3.0.0 on x86/x86_64
    ii  linux-image-3.0.0-17-generic  3.0.0-17.30  Linux kernel image for version 3.0.0 on x86/x86_64
    ii  linux-image-3.0.0-19-generic  3.0.0-19.33  Linux kernel image for version 3.0.0 on x86/x86_64
    ii  linux-image-3.0.0-20-generic  3.0.0-20.34  Linux kernel image for version 3.0.0 on x86/x86_64
    ii  linux-image-3.0.0-21-generic  3.0.0-21.35  Linux kernel image for version 3.0.0 on x86/x86_64
    ii  linux-image-generic           3.0.0.21.25  Generic Linux kernel image
    
  4. Uninstall the oldest one(s):
    $ sudo apt-get purge linux-image-3.0.0-16-generic
    ...and so on, being sure not to uninstall the one you're using.
Many thanks to Lekensteyn for the answer, and user6722 for the question.

3 comments:

Flotsam said...

Thank you, thank you - my /boot partition had reached 100% and most other methods (e.g. apt-get remove) failed because they needed to write at least a little bit to the partition and died for lack of space...

This worked great!

Chris said...

sudo apt-get autoremove

Removes all but the current image and the previous one (at least, that's what it did for me). YMMV.

T.J. Crowder said...

@Chris: Interesting. That didn't work for me.