I edited the GRUB menu.lst to point to the second Win XP installation hd1,0 and then makeactive. Sorry too much dispela tru. Dispela lookim - for some unknown reason GRUB would not boot hd1,0 even though testing proved it was being accessed. GRUB would always revert to booting Win XP on hd0,0.
How The Heck Did I Get GRUB to optionally boot the second Win XP Installation?
Well, this fix required some help which I found readily available on http://www.ubuntuforums.org/. I also found a very good relevant article on Linux Journal. http://www.linuxjournal.com/article/4622
BTW, just confirming GRUB partition numbers are always 1 less than Linux numbering. The conversion for my machine therefore is:
/dev/sda1 = hd0,0 (First Win XP installation)
/dev/sda5 = hd0,4 (Ubuntu Linux installation)
/dev/sdb1 = hd1,0 (Second Win XP installation)
- In Linux, back up menu.lst using cp /boot/grub/menu.lst /boot/grub/menu.lst.bak (or similar)
- Edit menu.lst using sudo gedit /boot/grub/menu.lst
- Change the second Win XP bootstrap loader instructions to read:
- title Windows XP #2 (or similar)
- rootnoverify (hd1,0)
- map (hd0) (hd1)
- map (hd1) (hd0)
- chainloader +1
- Save menu.lst and exit.
- Windows XP #2 should now boot normally from GRUB
The makeactive command sets the active flag in the partition table for the device specified by the root command, as some operating systems, like Win98, require.
I found a really excellent article at http://www.oculon.org/hijinx/linux/grub.htm which uses mapping in system configuration very similar to mine, without rootnoverify being used. I plan to try menu.lst without the mapping, and with the mapping but with rootnoverify changed back to root. I'll keep this blog posted.
A very useful GRUB resource can be found at https://help.ubuntu.com/community/GrubHowto
So that's How the Heck I Fixed that, and I'm now much happier with the start up options.