Vista on C, XP on D, boot.ini problems


New Member
Hi guys. I had an old HDD with only XP installed as C, unfortunately the HDD died but I was able to make an image of my XP partition. I brought a new drive along with Vista 64 and installed this as the default OS on C, and reimaged my original XP on a second partition as E (my DVD is drive D). XP's boot.ini, NTDETECT.COM and ntldr are all stored on drive E but I'm having trouble loading XP. In EasyBCD I added an XP entry with drive C:\ selected but got the error "Windows failed to start. A recent hardware or software change might be the cause" along with "ntldr missing...", so I went to "Change settings" and chose drive E for my XP entry. It now doesn't present this problem but the computer restarts and goes back to the Vista boot loader, so I'm assuming its a problem with boot.ini, as this is currently set for my original installation of XP as C on partition 1? I modified it to be:

[boot loader]
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Home Edition" /noexecute=optin /fastdetect

but still get the problem. Any ideas?
Last edited by a moderator:
As I try to solve my own problem which is similar to many posts I see here, this same solution comes up time and again. Afterwards, I don't see any posts from the OP saying it worked or not, so I assume it did. The only difference I see so far is I am using the stock ntldr and ntdetect that XP installs and I still can't boot. Are the files for download on the wiki modified from the stock Microsoft files? If so that's a horribly important footnote here that has gone unmentioned. If not, I continue to be stumped as to why my system won't boot XP.
Actually, quite a few members have reported these steps working for them, but your assumption is mostly correct: those that didn't post back most likey managed to get it fixed.

As you said, if the NTLDR and NTDETECT we're hosting were modified, we most certainly would have mentioned such a thing. Rest at ease, they're stock (off my own machine).

However, if your NTLDR/NTDETECT were somehow someway corrupted............
I had a very similar problem but the difference was I installed xp to a separate drive.
The fix was after adding boot.ini, NTLDR, and NTDETECT to vistas drive, to make sure boot.ini had the correct multi()disk()rdisk()partition() value which pointed to the xp partition.

I got the correct value by running Acronis Disk Director (which I used to partition the drive), I could not get the correct values through looking at the linux entry in EasyBCD alone.
I also am having the same type of problem. Had XP on sata drive (0) where Windows is on partition 2 . I bought a new sata drive and made that drive (0) for Vista and put the XP drive second. I've gotten too many scenarios to count and still have gotten nowhere. I did actually get a menu prompting for the old XP boot menu, but ended up with an error there.

Any help would be great! I think I fried my brain trying to understand the logic here.

[boot loader]
[operating systems]
multi(0)disk(1)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Home Edition" /noexecute=optin /fastdetect

There are a total of 2 entries listed in the Vista Bootloader.
Bootloader Timeout: 30 seconds.
Default OS: Windows Vista (TM) Ultimate
Entry #1
Name: Windows Vista (TM) Ultimate
BCD ID: {current}
Drive: C:\
Bootloader Path: \Windows\system32\winload.exe
Windows Directory: \Windows
Entry #2
Name: Windows XP Home
BCD ID: {d283e08c-8cde-11dc-b6d0-bee66ee32063}
Drive: Active Boot Partition
Bootloader Path: \NTLDR

*** Also my associated settings for XP indicates Boot for the drive rather than c: or f:. I've tried c: as well and have placed boot.ini, ntldr and ntdetect from the XP drive in the Vista c: drive as well as the boot folder in the Vista c: drive.

Where are the boot.ini, ntdetect and ntldr files supposed to reside by the way?

Thanks a bunch. I'm anxious to get this working.
You rdisk is wrong. Since you moved it on the SATA setup that will ahve to be corrected to (1) or (2) or where it resides now.

The ntdetect and ntldr files should be on the boot drive. In this case the Vista drive.
So I've been modifying the wrong portion of the boot.ini file? I've been changing the number for disk all this time. So you're saying to put disk back to 0 and change rdisk to 1 or 2?


I tried what I asked about in my last post. All is well! I'm up and running dual boot. Thank you for your help.
Last edited:
Yep, disk() isn't really used for anything :smile:

(as you've found out by now)

Anyway, glad it's up and running.