Why does grub store multiple kernels?

Solution 1:

The short answer is they are used "as a backup". New kernels are tested on a large amount of hardware before being released, but can't be tested on everything. If an update causes the machine to not boot successfully, then the previous known-good kernel is available as a fallback.

Solution 2:

According to The Evil Phoenix and sladen, I want to add:

If you used a kernel real long, and now you get a new one, and start using it successfully, you can delete the ones before the long-used 2nd newest one. Keep the current and the kernel before, except you have problems.

If you have problems, you will know yourself which kernel to keep and why. You might have multiple kernels, because one is able to produce high speed 3d graphics, but then acpi fails so you can't hibernate, and the other one does hibernate, but the 3d-performance is low.

But you can collect them, until the grub-screen is filled too much, and delete a couple of them at once.

Solution 3:

Yes, in most cases. Old kernels are there in case something breaks with a new one. This way, you can use the old kernel which works and just remove the new kernel which doesnt work.

Solution 4:

A couple of follow ons.

1) if you've just upgraded to a new version of ubuntu then it definitely makes sense to remove the old kernels because they may not work properly with the new version

2) you can remove the old images by running synamptic (or apt-get) and removing the older linux-image* entries (and if you remove the linux-image* you should also remove the linux-header* of the same version number if they are present)