I'm loving my Vista installation, but there was one piece of custom low level software that wouldn't play nice with Vista. I set forth on a quest to add an XP partition.

My first option was to use Microsoft Virtual PC 2007. It's free and it supports both hosts and clients in Vista. That worked fine but my app wouldn't run in a Virtual PC environment. That meant I was going to have to dual boot.

The first problem is that you're typically supposed to install multiple OS's from oldest to newest, but I didn't want to wipe my Vista install. All the instructions are for installing XP first. Here's the path I took. It may or may not work for you, but hopefully it gives you some things to try.

Setup: Two 250GB drives. Drive 1 is partitioned in half with Vista on the system partition. Drive 2 only has one partition.

  1. BACKUP! I used the new complete backup feature of Vista Ultimate to create an image of my Vista partition and I stuck it on my second drive. Don't skip this step! I actually had to use this at one point because I accidentally formatted my Vista partition. By popping in the Vista DVD I was able to restore the image in a few minutes.
  2. Using the awesome new disk management features in Vista, I shrunk the partition on the second drive and made a second partition for XP. When I booted to my XP SP2 disk, it complained that I was trying to install XP on the secondary drive.
  3. I headed back into Vista, deleted that new XP partition and expanded the single partition on my second drive to refill the whole drive. I then shrunk a partition on my first drive and made a partition for XP.
  4. I booted to XP and successfully installed it on that new partition.
  5. The problem now is that you'll only be able to boot to XP because it overwrites the Vista bootloader. The second problem is that the Vista bootloader and the XP bootloader are completely different.
  6. I booted to the Vista DVD and selected the Repair option. I told it to fix my startup problems and that got me booting back into Vista.
  7. I figured from there I would be able to use VistaBootPro to dual boot my machine. Wrong. I think the problem stems from having Vista on my system partition and XP on a simple partition. Also, in Vista my XP partition shows up as drive F and in XP it showed up as drive J. Whatever the reason, I couldn't get it going.
  8. I booted back to the XP disk, chose Repair and booted into the recovery console. Once at the command prompt, I typed fixboot. That wrote the bootloader to send me into XP.
  9. I booted into XP and inserted the Vista DVD. I opened a command prompt at the Vista DVD and ran these commands: 
    cd \boot
    bootsect /nt60 c: /force
    cd \windows\system32
    bcdedit /create {legacy} /d "WinXP"
    bcdedit /set {legacy} device boot
    bcdedit /set {legacy} path \ntldr
    bcdedit /displayorder {legacy} /addlast

Actually when I tried to create the new legacy partition, it said that one already existed from my work with VistaBootPro. I had to run bcdedit /delete {legacy} to remove that and start over.

That worked and I'm now dual booting XP and Vista. It seemed like way too much work and I probably should have just wiped everything and installed XP FIRST.

Sources: VirtualPC2007 Beta, VistaBootPRO, bcdedit commands

 [UPDATE 3/8/07] If this doesn't work for you, check out Part 2.