Thursday, April 8, 2010

Dual-boot Windows XP and Windows 7 (or Vista)

"Earlier versions of the Windows operating system (XP and bellow) are incompatible with the new Windows Vista startup method. Windows Vista uses a new Boot Configuration Database (BCD) store. This store contains a boot menu and all the information about operating systems that are installed on the computer. Therefore, a Boot.ini file that is from an earlier version of the Windows operating system cannot be used to start Windows Vista.

In earlier versions of the Windows operating system that run on a basic input/output system (BIOS)-based computer, such as Windows XP, the boot process starts with the system BIOS. The BIOS determines the boot device, and then loads the first physical sector. This physical sector is named the master boot record (MBR). The MBR contains the partition table and the necessary boot execution code. This code searches the partition table to find the active partition and passes control to the boot sector on the active partition. Then, the boot sector on the active partition loads the Ntldr program. The Ntldr program parses the Boot.ini file. This file is used to enumerate the operating systems that are installed.

When Windows Vista or Windows 7 starts on a BIOS-based computer, the BIOS loads the MBR and then loads the boot sector. However, boot code loads the new Windows Boot Manager program (Bootmgr). The Windows Boot Manager program parses the Boot Configuration Data file, enumerates the installed operating systems, and then displays the boot menu. If an earlier version of the Windows operating system is installed in a dual-boot configuration with Windows Vista or Windows 7, the Windows Boot Manager program transfers control to the Ntldr program for the earlier version of the Windows operating system. The Windows Boot Manager program does this when you select Windows Vista from the boot menu.

When you install an earlier version of the Windows operating system on a Windows Vista-based or Windows 7-based computer, Setup overwrites everything from the MBR, the boot sector, and the boot files. Therefore, the earlier version the Windows operating system loses forward compatibility with Windows Vista.

To start versions of the Windows operating systems that are based on Microsoft Windows NT, you need the following files:
  • Ntldr
  • Boot.ini
  • Bootfont.bin

Note You need to use this file when you install the Windows versions of the East Asian languages.
In Windows XP, these files reside on the system partition that is marked "active." By default, these files are hidden system files in Windows XP. Users can replace these files by using the Recovery Console, or users can start the operating system by using a Windows NT boot disk. Windows Vista does not use these three files. Windows Vista starts by using the hidden system file Bootmgr and other required files that are located in the \Boot directory."

Taken from Microsoft KB.

Quick tasks:

Windows 7 won't boot:
Start the Windows 7 install DVD, and choose "Repair" and "Command Prompt". At the prompt, do a "bootrec /RebuildBCD" to write down a new bootloader.