Re: XP/Vista/7 triple boot problem

"Gareth" <> wrote in message

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

"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 - Vista.

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.

Thank you.

I tried it - placing the file on the Vista drive root - and it didn't

I found a file called boot.bak in the XP root. It's content was:

;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(0)partition(2)\WINDOWS="Microsoft Windows XP Home

I renamed it (to boot.ini) and copied it to the Vista root and still no

I then copied the file to the XP root and XP started to from the Vista
boot loader entry!

I don't understand though. This suggests that the Vista boot loader is
using the old XP boot.ini file. I thought the whole point of the Vista
boot loader was that it used its own process?

Is it possible that the boot.ini file wasn't being used before the Windows
7 install but that the W7 install caused a problem and now the Vista boot
loader is relying upon boot.ini as an alternative?

In terms of Windows 7 - I have removed its entry from the Vista boot
loader but it is still on the hd. Could I just add an entry for Windows 7
using EasyBCD?


Glad you got it going. The issue with XP is that you need
the correct value for rdisk( ). If rdisk(1), or rdisk(0) doesn't
work, try the opposite. It all depends on what disks the
boot loaders, and the selected OS reside. It gets more
interesting if you have two XP installations. Are you sure
you aren't booting from the XP drive?

For multiboot editing, try VistaBootPro. It is very easy and
intuitive to use, and fairly powerful. It will be able to add
Win 7 to Vista bootmgr. I've used EasyBCD and VistabootPro,
and much prefer VistaBootPro.