a Tricky one :)


I had 2 partitions, vista on c: and xp on d: with dual boot. now i've added a new Hard drive and installed a fresh Vista x64 on it plus made it my c: drive. After that i changed my privous xp drive (that was now e: ) to d: again and aded with EasyBcd the entry for xp on d:... i thought it sould go smooth but when im trying to boot into xp im getting a NDLR error.

Thanks for the help
Last edited:
Thanks Makaveli213.
Just to be sure, even if my xp is on D: i need to Make sure EasyBCD's Windows XP entry points to the boot drive...meaning c: ?
Plus i didn't have boot.ini in c: root so i added it
i do i know what to right down in
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect
Last edited:
Post a screenshot of disk management+the entry details from EasyBCD so we can get a better idea of how its setup.
Yes, the boot files from XP need to be on the booted drive's active partition, even if that's not XP., and your boot.ini on c:\ will need to point to the other disk. The booted disk is rdisk(0), so XP will probably be rdisk(1)
I'm posting here a pic of my configuration. I must mention again, right now c: is a new hard drive i've installed, d: and e: use to be d: and c: in my old setups. (i had to swap between the partitions so d: will stay the same). I've copied all the xp boot files from d: to c: but im stll can't load xp. When i select xp in the boot menu my machine restarts.

You've still got boot.ini pointed at rdisk(0).
It doesn't matter what Vista calls the disks (0 or 1), NTLDR (the XP bootloader which reads boot.ini), gets the disk numbers from the BIOS, and the BIOS will number the booted disk 0, which makes the other one 1.
Change boot.ini to rdisk(1) in both places.
Thanks Terry60! That worked,xp loads just fine now but the drive letters are different from my vista install.
VIsta - Xp
C: = F:
D: = D:
E: = E:
When i try to change F: to C: in the disk managment im getting an error says i can't change boot drive letters.. How can i fix it?
I'm afraid disk management won't allow you to change letter for any partition marked "system" "boot" or "page". You can get rid of "page" by moving pagefile.sys to another drive in advanced performance options, you can get rid of "system" by moving the boot files (as you have done), but "boot" says "this is the system you're running", and you can never get rid of that, except by booting a different system.
Catch 22, is that you can't change what XP calls itself from another system.
Are you saying that XP used to call itself C:\, and that it's now different ?
yes.. well, it doesn't matter, i've found a solution.
I went to HKEY_LOCAL_MACHINE\SYSTEM\MountedDevicesand and renamed \DosDevices\F: to \DosDevices\C:
I was sure my Xp partition will not boot but guess what? :grinning:
Thank you all for your kind help.
The reason I asked if the system letter had changed on a previously working XP, was to determine if you might use the registry zap mentioned in other threads, but as far as I knew it only worked in Vista, because XP was incapable of getting far enough to allow a regedit when in this state, unlike Vista.
Are you saying that you were able to get into XP and regedit to change the letter back to what it had previously been ?
If so, that's a useful piece of information we can pass on in future.
"Are you saying that you were able to get into XP and regedit to change the letter back to what it had previously been ?"

Yes, when i logged into xp for the first time (after i fixed the boot.ini) the drive letters were massed up. I could change the letters from the disk management but to get f: to be c: like in vista i used regedit in xp.
I still don't quite understand your situation.
You started with Vista and XP on one HDD, Vista booted as C: and called XP D: ?
XP booted as C: and called Vista D: ?
Now you have a new Vista on another HDD. It boots as C: and calls Vista 1 E: and XP D: ?
The 2 previous systems boot as before but call Vista2 E: ?
Old drive = Vista x86 on c: and xp on d:
added a new drive and made it C: + installed on it Vista x64
So now C: = New Vista x64, D: (with previous VIsta) and E: (with previos XP)
I wanted my xp back so i switched between D: and E:
so now C: = Vista x64 , D: old XP, E: old vista
after i fixed my xp boot, when i logged in my drivers were like that:
D: = Xp, E: = old vista, F: = Vista x64 (with no C: )
So .. I edited in the registry from F: to C:.
....long :smile:
I hope i made my self clear
I think we're not quite on the same wavelength.
Partitions on HDDs don't have a letter assignment physically attached to the disk, though they do have a label (optionally) like "Vista System" physically written on them if you attach one when formatting.
The letter assignment is an internal construct of the booted OS, and will either be assigned dynamically at boot time (determined by the OS algorithm and the channel connection sequence) or, in OSs since XP, can be set in the registry so that the disks retain their letter between boots, even if the channel connections are changed.
So when you say "Vistax86 on C: and XP on D:" Is that how they both saw themselves and each other ?
So It wasn't XP that changed letter - It was just that XP saw your new Vista as a letter that you didn't like ?
I think I understand now. That's a much simpler problem. If XP had changed letter internally, it generally is unbootable whereas Vista can just manage to get far enough to let you fix it from within.

btw. Do you use system restore ?
With a Vista/XP dual boot, XP will destroy Vista's restore points unless you've got the MS registry zap to hide the Vista drives (which it doesn't sound like you're doing from the evidence of this thread), or you use something like HnS to do it dynamically at boot.
Additionally, If you boot XP as D:, and it can see a C: disk, there's a probability that installing software on XP (like anything by Adobe - reader, flash etc), will put some files in C:\Program Files\Common Files, even though you tell it to install somewhere on D:
Since these programs are likely also to be installed on C: by Vista, there's a good chance that execution of these programs will give unpredictable results at times, since they can both update the same files with different data.
Hiding Vista from XP will stop this from happening too.
I must admit i'm a bit confused...
But before that i have another question.. after all my hard work i had to RMA my drive (bad sectors)
I've installed a fresh copy of Vista on the new drive but for some reason my bood files are on another drive. My C: drive had a clean root. How can i trasfer the files from E: to C: and force my machine to boot from that drive?

My Vista bootmgr is on my XP partition and always has been from the moment after XP was installed and I repaired the Vista boot.
Why make trouble for yourself by moving it if it's working ?
When you install a second Vista, it's designed to just add an entry to the BCD of the previously existing Vista. It doesn't install a second set of Vista boot files.
Check this illustrated guide if you want to see how it all works.
If you really have a good reason to move it we'll help, but it'll be a lot of trouble for no particular purpose.