Well, that was timely. Having removed all those old Linux kernels, and now planning to refine the boot menu, today’s on-line updates include Linux kernel version 2.6.32-30 (which I have opted to download and install later), so this will be a good test of my current strategies.
Using Nautilus with root authorization (sudo nautilus), I first removed the execute bits from the files /etc/grub.d/20_memtest86+ and /etc/grub.d/30_os-prober.
Disabling 20_memtest86+ will stop any memory testing entries being added to the boot menu, while stopping 30_os-prober from executing will prevent an invalid boot entry (a pointer to the wrong disk partition) being produced for my Vista system. The appropriate boot entry for the Vista partition will then be created as a custom listing from the file /etc/grub.d/40_custom.
Next, I edited (sudo gedit) the /etc/grub.d/40_custom file to retain solely the entries for Vista and for the old Ubuntu 8.04 partition (the latter just providing a security blanket).
Finally, I ran sudo update-grub and the checked (gedit) the contents of the resulting /boot/grub/grub.cfg file.
Sure enough, the boot menu listings now consist of:
Linux 2.6.32-29 Linux 2.6.32-29 (recovery mode) Linux 2.6.32-24 Linux 2.6.32-24 (recovery mode) Vista Linux 2.6.24-24
In other words, from the boot menu, I will be able to access the current kernel (2.6.32-29), the next most recent kernel (2.6.32-24), my Vista partition, and my Ubuntu 8.04 partition (2.6.24-24).
So, now to reboot, download the updates to the kernel, and see what happens…