I was lost in some random, distorted thoughts in traffic when I realized I was wrong about how GRUB was incorrectly installed on my hard drive when installing from USB. This happened the first time when I installed PCLOS, which I still kick myself in the ass for letting set itself up automatically — including installing GRUB at all. The second time was this past weekend when I installed Debian. Why not when I also installed Fedora 10? Because I wisely added new entries for it to the existing menu.lst from the PCLOS install. Dittos when I copied tinycore to a little partition and made entries to boot it.
Here’s what went wrong. The install image assumes it’s on an optical drive rather than a flash device so it just goes in the standard device order; this presumption carries over after the installation. So since the system was booted from USB, the USB stick was detected at boot as /dev/sda. My SATA hard drive was then detected and assigned /dev/sdb. When GRUB was installed, it was installed to (hd1), which is the second drive or /dev/sdb, rather than (hd0).
Upon reboot, the SATA hard drive is again /dev/sda but GRUB is supposed to be on /dev/sdb — its former location in the device order during installation. Only there isn’t a /dev/sdb unless I have another USB storage device attached. Doh.
That should’ve been more obvious to me when I went through and reinstalled GRUB to the correct drive Saturday night. What’s interesting, though, is I reinstalled GRUB from USB running Fedora 11. Fedora 11 detected my hard drive as /dev/sda rather than /dev/sdb.
Even though it may not have been fair of me to curse and profane the existence of the developers and all their ancestors back to the protohominid stage, I still think they shouldn’t be let off the hook for this. It’s fairly easy — and increasingly common — for people to boot from non-optical devices like USB sticks. Hopefully more distros will consider that people install from flash rather than CD/DVD and make appropriate images for them and/or configure GRUB so that it installs correctly regardless of device order from installation. That might include an option like some distros (I recall Vector had such an option on their installation image) to boot from another drive and/or correct a bootloader (though I’m not so sure I’d trust something that messed things up the first time around).