This isn't actually a problem, this is just me posting my solution after three weeks of playing with my system.
The story: I was tired of my Windows XP Home SP3 on my laptop's Sata 80gb HDD. So, online, I bought a 320GB Sata HDD.
The 80gb one had two partitions, a system recovery and the actual OS and files itself. Using DriveXML i took an image of the OS and files, putting it on my external, then put the new HDD in.
I then installed Windows 7 RC.
This is where I went wrongAccording to pretty much every resource I found online afterwards, I should have put the cloned OS on first. Never mind. I didn't do it in that order.
Using the Windows Partition manager I made another two partitions on the 320GB drive, so 7 had two (the little 100mb one for its bootloader thing) and one for XP and one for files. Then, using EasyBCD 2.0 I made it so XP could be booted.
However, XP
would not boot past the welcome screen.This is because XP was confused, it had gone from a 2-partition drive to a 4-partition drive, also, from the first partition on the first to the third partition on the second.
Online tutorials recommended that I erase the MountedDevices in XP's registry. So I did. No difference.
At this point I tried three million and one online tutorials, ranging from setting new Disk ID's (which ruined both OS's) to downloading BartPE and XXclone. However, nothing worked.
At this point, I found
http://support.microsoft.com/kb/249321/ which seemed to outline my problem. So I restored the MountedDevices from XP's image, and played with the drive letters. No solution.
So, I made an assumption. If Windows 7 knew where things was, why couldn't it tell windows XP? Using regedit, I navigated to the MountedDevices in 7.
I then exported HKEY_LOCAL_MACHINE\system\MountedDevices to a reg file.
Then, using notepad, I modified the start line from
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices]
to
Windows Registry Editor Version 5.00
[HKEY_USERS\system\MountedDevices]
I then loaded the hive (G being the drive with XP) G:\Windows\System32\config\System (no extension) into the registry into HKEY_USERS with the name "system"
Then, I deleted every value I could out of XP's MountedDevices and ran the new reg file.
This populated XP's registry's MountedDevices with Windows 7's Registry's MountedDevicesThen, following the instructions in http://support.microsoft.com/kb/223188 I switched \DosDevices\G: with \DosDevices\C:This fixed the problem! Windows XP would now boot, and when it did, it was on Drive C: and 7 was on drive G:. When 7 booted it was on C and XP was on G.
So all I can say is, if you pull a me and install a dual-boot in the wrong order, not all is lost. I didn't want to reinstall 7 because of the copious drivers it had to download when i first turned it on. If you fall into this situation, i only hope this helps.
Cheers.