Tuesday, March 23, 2010

Tri-booting Vista, XP, and Linux


I've been successfully dual booting Vista and Linux (openSUSE) for a while now. The trick was to install Vista first (already done when I bought the laptop) and then openSUSE. GRUB was automatically installed and handled the dual boot situation well.
But after all the problems I've had with Vista not running programs that work fine in XP (Joint Ops, SSH/SMB port forwarding--see my other blog entry, my Hauppauge TV card) I decided that I also needed to be able to boot XP. But how do you get XP installed without clobbering GRUB or anything else? Turned out to be trickier than I thought...
First step is to use Vista's Disk Manager to shrink its partition and make room for XP. I was able to free up about 13GB of space which will be enough for now. Then I formatted it as NTFS.
I knew that installing XP was going to clobber GRUB by overwriting the Master Boot Record (MBR) on my hard drive. So I fired up my trusty Knoppix boot CD and used the program DD to backup the MBR to a file. The trick here is to only back up part of the MBR (the first 448 bytes) because the rest contains the parition table which we don't need to mess with.
Once the MBR has been backed up, you can start the XP install process. Just make sure to specify the new partition as the installation destination. No need to format it (did that above using Vista.)
After XP finishes its install the computer will reboot. XP will boot up because GRUB is now toast. Let it finish the install process completely--your old partitions and data will remain untouched.
Next step is to get GRUB back. Boot up Knoppix again and find that MBR backup file that was created above. Use DD again to copy the original MBR back to the disk.
When you reboot, you should see GRUB again. But you'll notice that XP is not one of the boot options. You'll need to modify the GRUB menu file (usually menu.lst--depends on your version of Linux) and add an entry for XP.
Once you've added XP to the list of boot options in GRUB, reboot and select it from the list. If all goes well, XP should boot up (and so should all the other OS's.)
If for some reason Vista won't boot anymore, you'll need to run Vista's Startup Repair tool to fix it.
That's it!
(Well not quite, at least not for me. I soon learned that HP does not provide XP drivers for my Pavilion dv6500 laptop! I had to find a hacked nVidia driver to install--one with a modified INF file to allow installing on XP, among other things. Also, since this laptop has a SATA drive controller, the XP install CD does not see it and, since I don't have a floppy drive, I couldn't hit F6 to install it! Solution was to use nLite to create a new XP install CD with the necessary driver.)

No comments:

Post a Comment