I'm pretty new to Ubuntu, and installed Natty (32-bit, because it was recommended) soon after it came out. The installation process chose to put Natty onto an external USB hard drive, a 500 MB WD Passport, which I liked (it wouldn't interfere with my Windows partition that way). However, at boot, the computer boots directly into Windows unless I press F12 (on my Dell) to choose boot options, and then select to boot into the Passport. Then I get grub and select to boot into Ubuntu. I don't really mind this; it seems obvious that grub was installed onto the Passport. No big deal.
But I just recently installed 64-bit Natty onto the Passport, choosing the option to "upgrade Ubuntu 11.04 to Ubuntu 11.04." It went well, most of my settings were saved (and all of my data), but it seems to have installed another instance of grub. Now, when I boot the computer, I have to press F12 to select the Passport (as I did before), then select "earlier versions of Ubuntu" in grub, at which time another grub screen comes up which allows me to choose the right OS (the 64-bit version).
I don't mind selecting the Passport, but after that I'd rather have one grub screen, not two in a row. How do I do this?
mdk@Tabasco:~$ sudo fdisk -l
Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xe49667b6
Device Boot Start End Blocks Id System
/dev/sda1 1 5 40131 de Dell Utility
/dev/sda2 6 1918 15358976 7 HPFS/NTFS
/dev/sda3 * 1918 35363 268649893+ 7 HPFS/NTFS
/dev/sda4 35363 60802 204334080 f W95 Ext'd (LBA)
/dev/sda5 35363 60802 204333056 7 HPFS/NTFS
Disk /dev/sdb: 500.1 GB, 500074283008 bytes
201 heads, 9 sectors/track, 539915 cylinders
Units = cylinders of 1809 * 512 = 926208 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00038a56
Device Boot Start End Blocks Id System
/dev/sdb1 * 2 269958 244175360 7 HPFS/NTFS
/dev/sdb2 269958 539915 244175873 5 Extended
/dev/sdb5 269958 535292 239993856 83 Linux
/dev/sdb6 535293 539915 4180992 82 Linux swap / Solaris
Disk /dev/sdc: 1299 MB, 1299594240 bytes
40 heads, 62 sectors/track, 1023 cylinders
Units = cylinders of 2480 * 512 = 1269760 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
I "solved" this by wiping the external drive and reinstalling Ubuntu on a partition of the internal hard drive. Since grub had been installed on the external drive, the process wiped it out, too. Not elegant, I guess, but it solved the problem and gave me a fresh install of 64-bit Ubuntu 11.04.
Perhaps it's worth noting that although 32-bit Ubuntu seemed to be about as fast running on the external hard drive as on the internal hard drive, 64-bit Ubuntu seems to be faster on the internal hard drive. (I expected boot-up to be faster, since that involves reading from the drive a lot, but I was surprised to find that the system was overall faster.)
"Earlier versions of Ubuntu" includes older kernels. Make sure that your system is up-to-date and regenerate the boot menu after. Boot into the 64-bit Ubuntu, open a terminal and run:
Reboot to test it. If nothing changed, it's likely a bug. If you do not need the 32-bit Ubuntu, remove that.