Invalid boot.ini file

Yet another noobish question. I have read through a lot of threads and the wiki and I hope I have narrowed down the problem. First, here is what I have done so far:

I have 2 physical drives in my computer. One is the original drive that has Vista32 on it, which is partitioned into C: and D:, D: being a recovery partition as is the style with retail boxes, and E: being I also have another drive, F:, which I installed XP Pro x64 on.

1. I repaired the Vista bootloader and could boot into Vista again.
2. Loaded EasyBCD and created a new XP x64 entry, pointed it to the F: drive, and discovered my error there (NTDLR error).
3. Deleted the entry and made it point back to C: as it should
4. Made sure the three files (boot.ini, NTLDR, and NTDETECT.COM) are present in C:\
5. I reboot and choose the x64 entry, and get this error:

Invalid boot.ini file
Booting from C:\Windows\
NTDETECT failed

Looking around this seemed to be a boot.ini problem (duh) so I edited the boot.ini file to what I thought should be the proper drive, figuring it was pointing to the recovery partition D: or the DVD drive E: but I still get the same error. Here is what my boot.ini file looks like now:

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(2)partition(0)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(2)partition(0)\WINDOWS="Windows XP Professional x64 Edition" /noexecute=optin /fastdetect

And here is my EasyBCD entry settings file info:

There are a total of 3 entries listed in the Vista Bootloader.
Bootloader Timeout: 30 seconds.
Default OS:

Entry #1

Name: Windows Vista Home Premium
BCD ID: {b2fc7254-8dbd-11dd-aee7-f79533f45c19}
Drive: U:\
Bootloader Path: \Windows\system32\winload.exe
Windows Directory: \Windows

Entry #2

Name: Windows Vista (TM) Home Premium (recovered)
BCD ID: {current}
Drive: C:\
Bootloader Path: \Windows\system32\winload.exe
Windows Directory: \Windows

Entry #3

Name: Windows XP x64
BCD ID: {b2fc7256-8dbd-11dd-aee7-f79533f45c19}
Drive: C:\
Bootloader Path: \NTLDR

And to sum up, my drives are as follows:

C: Windows Vista32
D: Factory recovery partition, part of the same physical drive as C:
E: DVD Drive
F: XP x64, separate physical drive from C: and D: and E:

So have I edited boot.ini incorrectly, or is one of the other files corrupt, or what? I feel like I'm asking the same question as everyone else but something obviously still isn't right. :|

Addendum:

Addendum:

I deleted the x64 entry and re-added it, naming it EXACTLY as it is referenced in the boot.ini file (Windows XP Professional x64 edition). I then re-pointed it to C: instead of U: and I still get the same error. Leaving it as U: made my box boot directly into Vista32 without even the option to select.
 
Last edited:
Hi Walter, welcome to NST.
Try rdisk(1) partition(1)
(disks count from 0, partitions count from 1 in Windows (0 is the MBR))
 
Tried that and rdisk(2) partition(1) but neither work. Does it matter that the C:/D: drive is a SATA, the E: DVD drive is IDE, and the F: x64 drive is SATA?

Addendum:

Here is my current debug screen, by the way:

Windows Boot Manager
--------------------
identifier {9dea862c-5cdd-4e70-acc1-f32b344d4795}
description Windows Boot Manager
locale EN-US
inherit {7ea2e1ac-2e61-4728-aaa3-896d9d0a9f0e}
displayorder {b2fc7253-8dbd-11dd-aee7-f79533f45c19}
{b2fc7257-8dbd-11dd-aee7-f79533f45c19}
{b2fc7254-8dbd-11dd-aee7-f79533f45c19}
toolsdisplayorder {b2721d73-1db4-4c62-bf78-c548a880142d}
timeout 30

Windows Boot Loader
-------------------
identifier {b2fc7253-8dbd-11dd-aee7-f79533f45c19}
device partition=C:
path \Windows\system32\winload.exe
description Windows Vista (TM) Home Premium (recovered)
osdevice partition=C:
systemroot \Windows
resumeobject {b591fc18-8dae-11dd-813c-806e6f6e6963}

Real-mode Boot Sector
---------------------
identifier {b2fc7257-8dbd-11dd-aee7-f79533f45c19}
device partition=C:
path \NTLDR
description Windows XP Professional x64 Edition

Windows Boot Loader
-------------------
identifier {b2fc7254-8dbd-11dd-aee7-f79533f45c19}
path \Windows\system32\winload.exe
description Windows Vista Home Premium
systemroot \Windows

Addendum:

Also, is there any way to figure out which drive windows thinks is my F: drive with my x64 install on it? I made sure my BIOS was booting from my Vista drive (C:/D:smile: first, but it says it's the "3rd Master" which confuses the hell out of me. Other posts around here seem to imply that the BIOS and Windows might have different ideas on the numbering of drives, so how can I figure it out?

Addendum:

Disk management refers to drive F: as Disk 1. C: (Vista) is Boot, Page File, Crash Dump, Primary Partition. D: (Recovery partition) is System, Active, Primary Partition. F: (x64) is Logical Drive.

Addendum:

My BIOS counts drives funny. 6 drive entries are listed as follows:

1: None
2: DVD-ROM (IDE)
3: Vista32 Boot drive/Recovery partition (SATA)
4: DVD-RW (SATA, this is a correction from earlier info)
5: x64 drive (SATA)
6: None

Addendum:

I tried rebuilding the boot.ini file with windows recovery as shown in the wiki. Now I just get the NTDETECT failed error.

Addendum:

In addition, if I set the boot order in the BIOS to boot from the x64 disk F:, all I get is a blinking cursor and nothing happens.
 
Last edited:
I have a mix of SATA and IDE for both HDDs and opticals, so no there's no problem there. (except when a broken boot caused the Vista system to become "invisible" while the IDE disk was connected - but that's not your problem)
Disk Mgmt always puts the IDE drive first and calls it disk 0 even when you're booting from the SATA and you (and the BIOS) know that it is really disk 0. This does cause confusion and make it difficult to indentify the correct rdisk and partition.
You won't do any harm by editing incorrect values into boot.ini (it just won't boot !), so running through all possible permutations and combinations of rdisk and partition till you hit the jackpot is probably the fastest, if least elegant, way of solving your problem.
Remember, since you mention that XP is on a logical drive, that an extended partition has a number too, as well as the logical disk inside it, so try adding 1 to the partition value.
If you still can't crack it, post back with a screenshot of your disk management display, and we'll try guessing for you!
 
The saga continues

Here is my disk management screen in Vista. If it helps any, this second drive that I installed and put x64 on has been in the computer for some time now as data storage. It was only recently that I loaded x64 on it. It was fully installed, and I put SP2 on it, then re-loaded the Vista bootloader to get back into Vista and here I am. Also, the new boot.ini that the x64 recovery console created pointed to rdisk 1 partition 1 (although I still get the error anyway without boot.ini being mentioned).
 

Attachments

  • disk_management.jpg
    disk_management.jpg
    75 KB · Views: 11
Looking at your dsk mgmt, I see that D:\ is "system active", i.e. that's where bootmgr/BCD is, and where all your boot files have to be.
You'll need to move the XP boot files (or make yet another copy) in the D:\ root like you did before in C:\.
Then carry on as you were doing, only this time edit D:\boot.ini, and change the BCD entry for XP to drive D:\ (that's why it has the option "boot" in EasyBCD - it will locate the proper drive for the boot files for you to avoid this kind of problem)
 
Last edited:
I was kind of wondering why there was a BOOT selection, although I was not surprised it was pointing to C: each time. I take it this is why it is important to have only one set of these files on your computer as it could confuse BCD when you choose the BOOT option? I will try what you suggested later on today and hopefully report back with success. Thanks for the help so far. :happy:
 
It doesn't confuse the OS if you have boot files everywhere, it only looks in the one place - the "system active" partition boot sector.
It does tend to confuse human beings though, hence the advice to have just one so that you don't tear your hair out in frustration when changing the wrong one fails to have the desired effect.

"boot" btw is a very confusing term. EasyBCD uses it in the sense that most people do, "where the boot files are".
Unfortunately MS says
"system" = "where the boot files are"
"active" = "the "system" partition to start in. (in case there's a Linux or other non-windows "system" somewhere)
"boot" = the active system (not the "active" "system" partition, but the system that's in use i.e. active in the normal sense of the English language), or the one you're currently booted into.
 
Last edited:
Back
Top