Workaround for Dual Boot XP/7
I have found that for whatever reason the standard (Vista or) Windows 7 dual boot methods often fail when XP is installed on a physically separate harddrive, you set up EasyBCD with the proper drive for XP and still it doesn't work, or you try the 'automatic' dual boot detection during a boot-repair install and it also fails.
There is a fairly simple way to
make an XP dual boot work using EasyBCD. The magic that makes this work is that the XP bootloader already has the ability to redirect the computer to boot into any partition on any drive. What follows is a method to put the XP boot files in a place that is easy to find by the Windows 7 bootloader.
1. Go into your BIOS and determine the HD device number for the physical drive that XP is installed on. In BIOS you will find a list of the boot order of the installed harddrives. The HDs are numbered beginning with 0 (zero) so the first drive in the list is HD0, the second is HD1, the third is HD2 and so on. Get the number for the physical drive that XP is installed on from the BIOS, this is not the drive number that is reported inside Windows.
2. Copy (don't move them) these three files from the XP root folder to the 7 root folder:
Code:
ntdetect.com
ntldr
boot.ini
If necessary mark the copied boot.ini file as NOT read-only.
3. Open the copied boot.ini file (in the Windows 7 root folder) with a plain text editor like Notepad. It should look something like this:
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
Note that the Windows name in the file is dependent on which version of Windows is installed, this example is for HP Home Edition.
4. There are two lines that contain 'rdisk(0)' which refers to the physical harddrive number. Replace the '0' (zero) in both instances of 'rdisk(0)' with the harddrive number that you got from your BIOS. If the harddrive that XP is installed on is HD1 (the second drive in the BIOS list) then the resulting boot.ini file should look something like this:
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
Change both instances of 'rdisk(0)' to 'rdisk(1)' (or whatever HD number the XP harddisk is in BIOS), save the file and mark it as read-only if you wish.
In the example above you will also see 'partition(1)' which refers to the partition that XP is installed in. Partition numbers begin at 1 (one) and it is usual that XP is installed into the first partition on a harddrive. That 'partition(1)' can also be changed if necessary, for example if you had multiple installs or had moved the XP partition.
5. Run EasyBCD,
remove the old XP entry if it is still there. It might be best to save the changes at this point. Now, add a new entry, select XP, the drive letter WILL be grayed-out and should read "C:". This is correct, you DO NOT select the drive letter for the XP partition, the XP boot files are now in the root folder of the Windows 7 partition which is the "C:" drive and have been properly detected by EasyBCD. Save the changes and exit EasyBCD.
You should now be able to dual boot 7 or XP. The XP boot files in the root folder of Windows 7 will now redirect the boot to the XP drive. When you boot XP it should see itself as the "C:" drive no matter what Windows 7 sees it as. It is also not necessary to set the XP partition as 'Active', the 'Active' flag is only needed for the disk which contains the initial bootloader (and MBR) which in this case is Windows 7. In any case the XP partition CAN be marked as 'Active' so that in an emergency that drive could be set to boot from BIOS, this in no way interferes with the Windows 7 bootloader.
[EDIT] Note that this example is intended for a single XP install. Should there be an XP style multi-boot the boot.ini file will have more entries for the XP style multi-boot. Those multi-boot entries will also need to have their 'rdisk(x)' entries changed as is appropriate for their physical harddisk drive and partition locations. I don't actually know if that XP style multi-boot will work in this case.