Dual-booting XP / Win7 from separate hard drives, both are assumed "C:"

#1
Backstory 1:

I have 2 physical hard disks. One contains an XP-32 installation and the other a Win7-64. One drive at a time is connected to SATA-0 and my optical drive is connected to SATA-1. If I need XP, I slip the SATA connector onto the XP drive. If I need Win7, I slip the connector onto that drive. Neither drive has seen the other, nor has either drive been attached to any other SATA channel. BIOS does not allow me to choose which SATA channel to boot from, otherwise we wouldn't be having this conversation...

Backstory 2:

I have just recovered from a failed installation of EasyBCD onto the XP drive connected to SATA-0 simultaneously with the Win7 drive connected to SATA-2. I understand that the SATA channels are arbitrary as the BIOS will assign the drives appropriately. For some reason I had to replace my ntdetect.com, ntldr and ntoskrnl.exe files and run Bootcfg /rebuild to get my XP drive back up and running from the "invalid boot.ini file" and "Windows could not start because the following file is missing or corrupt: <Windows root>\system32\ntoskrnl.exe. Please re-install a copy of the above file." errors. What a way to start my Friday morning.

So, that being said:
1) Is it even feasable to have an existing XP disk on channel 0, an existing Win7 disk on channel 2, and dual-boot properly?
-and-
2) If so, is there a guide that explains how to safely do this (obviously in a way that I did not) and keep the integrity of both operating systems intact? Loss of data is not an option...!

Thanks for your time!
 

mqudsi

Mostly Harmless
Staff member
#2
Set the Windows 7 disk as the boot device in the BIOS. Install EasyBCD on Windows 7. Add an entry with it for Windows XP.

Done.
 
#3
Since the BIOS does not allow selecting which HDD is the boot drive (SATA-0 defaulted), I'll assume that you want me to place the W7 drive on (0) and the XP drive on (2)? Actually, I may move the optical drive to channel 3 to get it out of the way for now. I'll let you know what happens. Thanks!
 

Terry60

Knows where his towel is.
Staff member
#4
What BIOS is that ?
I seem to remember hearing Dell are a bit stone-age in that department.
 

mqudsi

Mostly Harmless
Staff member
#6
@Terry: You hit the nail on the head there :smile:

@Backinblack: Sounds good. You can *technically* do it with XP on channel 0, but it's a hell of a lot more work since EasyBCD can't deploy the BCD bootloader to a different drive when run under XP.
 
#7
Ok, so BCD installs and runs from the W7 drive just fine, thanks. However, the XP drive (now on the second SATA channel) does not run because XP detects a hardware configuration error. XP was set up and installed originally on that physical drive, but in the first channel configuration. Is there a fix for that other than installing XP all over again?
 

mqudsi

Mostly Harmless
Staff member
#8
Are you sure it's not an AHCI vs ATA mode problem?

Anyway, there are many easy fixes. Easiest of all is a repair install (not reinstall). Faster but more complicated would be to mount the XP registry in 7 and clear out the MountedDevices key.
 
#9
I loaded the remote hive and emptied the MountedDevices key under Local Machine. That didn't fix it. Is there another additional key I need to clear out?
 

Terry60

Knows where his towel is.
Staff member
#10
#11
I believe now that all of the XP registry references for "C:\" must be changed to "E:\" for the XP install to boot up. Should I be able to remote mount the registry and search/replace all instances of "C:\", or would it be better to export the entire registry and text edit it on another computer?

Or of anyone knows a way to get XP to actively ignore hard drives and the partitions thereon a specific SATA channel, I can get XP to ignore the W7 drive and then the XP partition would remain being C:...