How to get a XP/Windows 7 dualboot to work:
The XP boot loader files need to be in the Windows 7 partition. XP bootloader files must be in the root folder of the first partition of the harddisk that boots the computer (usually known as drive "C:"). This is the harddisk that is listed first (in boot priority) in the BIOS, or that is booted first from an external harddisk adapter.
Copy (NOT move!) these 3 files from the XP root folder into the Windows 7 root folder:
(assuming that your Windows 7 is installed in the first partition)
ntdetect.com
ntldr
boot.ini
Now you must modify the boot.ini (in the Windows 7 partition) to point back to the XP partition. DO NOT modify the boot.ini in the XP partition! This can be confusing and difficult but it should not affect your XP install in any way if you get it wrong. Getting it wrong just results in XP not booting.
In two lines in the boot.ini file is a reference to the drive and partition that the XP is installed on:
Code:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Home Edition" /FASTDETECT /NOEXECUTE=OPTIN
These two items in the above lines (line 3 and 5) in the boot.ini must be modified:
rdisk(x) points to the physical drive that XP is installed on, this is the order in BIOS that the harddisks are listed starting at 0 as the first harddisk.
partition(x) points to the partition that XP is installed on starting with 1 as the first partition.
Examples:
For XP on the first harddisk in the first partition the result is:
rdisk(0)partition(1)
For XP on the second harddisk in the first partition the result is:
rdisk(1)partition(1)
For XP on the third harddisk in the first partition the result is:
rdisk(2)partition(1)
And for XP on the first harddisk in the second partition the result is:
rdisk(0)partition(2)
You must modify "rdisk(x)partition(x)" in BOTH lines in the boot.ini, and both line's entries must be identical so that they refer to the same harddisk and partition.
Once you get this set up, start EasyBCD (inside Windows 7), remove your "bad" XP entry and start over. "Add" a new Windows XP entry, select the "OS Type" entry as Windows XP and, if you got your boot.ini correct, you don't even need to select the drive letter, EasyBCD will detect the XP install and automatically configure the dualboot. You will see "C:" as the selected drive, that's correct since when XP boots it will be the "C:" drive no matter that it's now "F:" (or whatever).
On my system I have Vista 64 on the first harddisk in partition 1, Windows 7 on the first harddisk in partition 2 and XP on the second harddisk in partition 1. So in the (XP) boot.ini file in the Vista partition I have:
Code:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(1)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(1)partition(1)\WINDOWS="Microsoft Windows XP Home Edition" /FASTDETECT /NOEXECUTE=OPTIN
Since I have a Vista/Windows 7 dualboot my XP boot.ini file is in the Vista root folder because that's where the Vista/Windows 7 bootloader is located. With only a Windows 7 install you would put the XP boot files into the Windows 7 root folder.
Without a Vista/Windows 7 dualboot, using only a virgin Windows 7 install, you might need to put the three XP boot files into that "hidden" Windows 7 partition because that's where the Windows 7 bootloader is found, or so I've read. I installed Windows 7 from within Vista so I didn't get the extra "hidden" partition.
This works even if XP is 32bit and Vista or Windows 7 is 64bit, the bootloader does not care what gets booted - 32bit or 64bit. It's even possible to use EasyBCD to boot into a Linux type OS like Ubuntu instead of using GRUB which is an adventure all by itself.