I was doing some application testing running on (VMWare) virtual machines and I was having some problems obtaining consistent times. So I decided to just create a Windows XP boot partition on an existing Windows Vista machine to eliminate any issues related to the virtual machine.
Of course, as is common in Windows Vista, I was bitten by a “new and improved” feature where after I installed the XP boot partition, the Windows Vista partition would no longer boot. Why? Formerly, you could control boot partitions using the BOOT.INI file. In Windows Vista, BOOT.INI has been replaced with Boot Configuration Data. Because of this, after installing a Windows XP partition, the Windows Vista boot configuration gets corrupted and you can’t just modify BOOT.INI to make it work again.
How do you fix it? You have to restore the Vista boot configuration and then add additional configuration related to booting the older OS.
The Windows Vista product disk includes a repair option. If you boot using this disk, you will be presented with an option to repair the operating system. This allows you to restore the Windows Vista boot manager.
Once you’ve booted back into Windows Vista, the utility, BCDEDIT.EXE, allows you to add additional information to the Boot Configuration Data that allows you to boot to the Windows XP partition. But it does this indirectly through the old BOOT.INI file. So assuming that Vista is installed on drive C: and the BOOT.INI file that Windows XP created still exists, the following commands can be used to add this configuration data:
bcdedit /create {ntldr} /d "Windows XP Test" bcdedit /set {ntldr} device partition=c: bcdedit /set {ntldr} path \ntldr bcdedit /displayorder {ntldr} /addlast
This configuration then allows you to use the old BOOT.INI exactly as you have used it previously. Of course, since the Vista Boot Manager uses this indirection, you could possibly have to go through two boot menus before starting your machine. Perhaps a future enhancement would allow a more seamless method of booting older operating systems.
SysChat has a helpful tutorial on how to dual boot between Vista and XP when Vista is first installed. They also include a link to the reverse topic where XP is first installed.
Microsoft also published a knowledgebase article about this issue.