Re: XP/Vista/7 triple boot problem

"Gareth" <> wrote in message

"Ian D" <taurus@xxxxxxxxxxx> wrote in message

"Gareth" <> wrote in message
Hopefully someone can help.

I had a perfectly good dual boot Vista and XP system until I installed
Windows 7 RC.

I installed Windows 7 RC to a new partition on the Vista (slave drive)
with XP installed on the master drive.

Vista and Windows 7 booted okay but despite there being 3 options in the
boot menu - Earlier Version of Windows (XP), Vista and Windows 7, XP
would not (and will not) boot.

The error message when selecting XP from the boot menu was that the
boot.ini file is invalid; I then get a message saying that the
system32\hal.dll is corrupt or missing.

I used EasyBCD to restore a backup of the previous Vista boot loader
which worked with XP. Windows 7 disappeared from the boot options but I
still cannot boot in to XP - I get the same error message (boot.ini and
hal.dll). I can boot in to Vista.

EasyBCD tells me that there are 2 entries in the Vista bootloader:

Entry #1

Name: Earlier Version of Windows
BCD ID: {ntldr}
Drive: C:\
Bootloader Path: \ntldr

Entry #2

Name: Microsoft Windows Vista
BCD ID: {current}
Drive: F:\
Bootloader Path: \Windows\system32\winload.exe
Windows Directory: \Windows

But when I use msconfig in Vista it tells me that there is only one OS -

Is there anything I can do to restore the boot information that allows
me to start XP - the boot menu entry is there but I can't boot XP.


It looks like the the addition of Win 7 has modified the drive
references in XP's boot.ini. Restoring the original Vista boot
corrected bootmgr, but didn't correct boot.ini. I assume that
XP was the first OS installed, and on the master drive. If that's
the case, change the boot to that drive, and see if XP will boot
stand alone. If it does, the problem lies with the boot.ini on the
Vista drive. Probably the rdisk( ) references are wrong, so
boot.ini can't find the XP drive, and returns an error. It found
ntldr, because that's on the Vista drive, but then couldn't find
hal.dll, because that's on the "unknown" XP drive.

If Vista is set as the boot HD in BIOS, the boot.ini on that disk
should look something like this:

;Warning: Boot.ini is used on Windows XP and earlier operating systems.
;Warning: Use BCDEDIT.exe to modify Windows Vista boot options.
[boot loader]
[operating systems]
multi(0)disk(0)rdisk(1)partition(1)\WINDOWS="Microsoft Windows XP Pro"

Thanks. But now I'm really confused. There is no boot.ini file in the root
of the XP install (c:) and it is nowhere to be found on either of the
physical drives (XP or Vista). Is this likely to be the problem? If so how
can I create the file?

The XP (c:) partition is described as System, Active, Primary Partition.
The Vista (f:) partition is Boot, Page File, Active, Crash Dump, Primary
Partition. The Windows 7 partition (g:) (which has been removed from the
Vista boot loader) is described as Primary Partition.

Could I use EasyBCD to repair the boot process?


As an experiment, copy and paste the above boot.ini to notepad,
then save it as boot.ini to the Vista drive root. Also, make sure
ntldr and NTDETECT.COM are in both the XP and Vista roots.
I don't know if both are needed in both places, but it won't hurt,
and will be needed to boot XP as stand alone.

If you wan't the option to boot XP as stand alone, copy this to
the XP root in the same manner.

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

You will notice that rdisk( ) now has a value of "0". That's because
XP is located on the boot disk.