How To Restore Windows 7 Bootloader After Windows XP Installation
1. Symptoms of the problem
After trying Windows 7, you have decided that you need Windows XP for application compatibility or other reasons. So you have installed Windows XP into another partition, intending to dual-boot it with Windows 7.
But installation of Windows XP happened after installation of Windows 7, and now computer boots directly into Windows XP, Windows 7 is not even offered in the boot menu.
Your intention is to fix this situation, i.e. make both Windows 7 and Windows XP appear in the boot menu.
2. Reason why the problem occurs: Explanation of dual boot process
When Windows 7 used to be the only one OS on your computer, boot process was quite simple:
The key point of this diagram is that "Win7's Boot Sector and VBR" transfers control to "Win7's BOOTMGR".
When Windows XP was installing itself, it knew nothing about "Win7's Boot Sector and VBR", so "Win7's Boot Sector and VBR" was overwritten with "WinXP's Boot Sector and VBR", which transfers control to "WinXP's NTLDR" instead of "Win7's BOOTMGR":
WinXP's NTLDR knows nothing about Win7's BOOTMGR and Windows 7 in general. It just boots Windows XP as if we are in 2001. Blue part of this diagram belonging to Windows 7 is simply unreachable.
To restore Windows 7 in the boot menu, we must restore "Win7's Boot Sector and VBR" at its original location and also add link from "Win7's BOOTMGR" to "WinXP's NTLDR":
Windows 7 would create this structure automatically, if it would have been installed after Windows XP. Windows 7 is aware of Windows XP boot process; Windows XP is unaware of Windows 7 boot process.
3. Step by step guide: How to restore Windows 7 boot loader in XP-over-Win7 situation
1) Download EBCD and burn it to CD/DVD according to the instructions, then set up your BIOS to boot from CD. You need full EBCD version to actually write changes to the disk, but it's recommended to try demo version first to make sure there are no hardware incompatibilities.
2) Boot EBCD:
3) Choose Mount & Boot Center in the main menu, wait while it loads:
4) Make sure Mount & Boot Center looks like below (Windows 7 and Windows XP operating systems are detected and shown as table columns; Windows 7 and Windows XP loaders are detected and shown as table rows; Win7 loader is called by BIOS and WinXP loader isn't):
5) Set option "called by BIOS" for Windows 7 Loader. Enter "#2" (or other appropriate number of WinXP loader) into "subordinate bootloaders" field of Win7 loader:
6) Click OK to close Mount & Boot Center (changes will be commited to disk), then choose "Reboot" in EBCD main menu:
Please note: this article applies to Windows Vista too. Replace all occurences of "Windows 7" to "Windows Vista" in this text and it's still valid in every detail.