NTLDR on wrong drive

Back in January, I installed WinXP on my wife’s computer, putting it on the D: drive and leaving C: intact for purposes of file migration.

Fast forward to this week, and I finally got around to taking (at least, trying to) out the old C:, and making D: the new C:. It didn’t work, because I can’t boot the system. The error is ‘NTLDR not found’.

:smack: Apparently, when I installed XP, I put the loader on the wrong drive. Is there a way to set up the XP drive with NTLDR without starting from scratch?

(FWIW, I don’t have Ghost or any other utility to make bootable backup CDs)

I’m fairly certain you can do this by booting with the XP CD into the recovery console and using the fixboot or fdisk /mbr commands. But it’s been a while.

That should get you started with a web search to see exactly how to do it. Be sure to read all of the warnings about possible data loss and all that.

Well, if it’s looking for ntldr, then I don’t think fixboot or fixmbr from the recovery console is going to help. Those just set up the boot records on the hard drive, which exist, or it wouldn’t even know to look for ntldr. Do you have a way to verify if the ntldr file is really on the current drive? I would usually use something like BartPE, Knoppix, or some other bootable CD to see if the files are really there. If you don’t have a way to make one of those, you can put the hard drive in a different system.

If they are there, then it could be an issue with your C:\boot.ini. If it was booting from what it saw as the second drive in the system, and is now booting from the first drive, it will be looking for ntldr on the wrong drive. To fix this, though, you’ll need write access to the partition, which is probably an NTFS file system. I could be wrong, but I don’t think Knoppix supports writing to NTFS, so you would need either BartPE or to hook the drive up to a different system. The important lines are the ones with something like:

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS

If it says disk(1), this is most likely your problem. Change that to disk(0) and it may just boot.

If the ntldr and other boot files aren’t on your now C:\ partition, then the easiest way to fix it is to do a repair install of Windows. There’s probably a number of files you could just copy over, but I’m not sure what they are off the top of my head.

No, you didn’t. The boot drive is not necessarily the system drive. The two can be quite seperate. For instance, it used to be common for NT servers to have a FAT partition as C: with an install set of NT and its service packs and drivers, with the installed NT OS on D:.

Now, do you remember when you created the partition, did you create it as an Extended Partition (with Logical Drives) or as a Primary Partition? If the former, you may need something like Partition Magic to convert it to a Primary Partition. If the latter, Fixboot is the first step, but you’ll have to also edit boot.ini. Or rather, you’re going to make a copy of boot.ini, then edit the original. Here’s mine:

[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 Professional” /noexecute=optin /fastdetect
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS=“Microsoft Windows XP Professional” /fastdetect /noexecute=optin
C:\CMDCONS\BOOTSECT.DAT=“Microsoft Windows Recovery Console” /cmdcons

Read up on ARC naming to understand what everything means.