Triple Boot XP,Vista,Windows 7?

#1
I was currently dual booting XP and Vista on same disk and decided to triple boot Windows 7 on same disk. After installing Windows 7 (from a USB pen drive) and rebooting, it did not show up in Boot Manager so I did a repair from the Windows 7 install drive then got a bootmgr missing message. I fixed this by booting from the Vista install disk and repairing and managed to get Vista to boot but noticed that the boot manager entry for XP was missing. I added the entry for it in EasyBCD but when I try to boot into XP the computer restarts. Advice greatfully accepted and has anybody managed to triple boot these?

Addendum:

Solved the XP not booting bit. It's been a while since I set up the dual boot originally and was setting XP as drive D: (ie using easyBCD in vista and that's the drive partition it's on), but it needs to be set as drive C: because that's where Boot Manager looks when the computer is booting up. Silly me. I could use advice on why Windows 7 does not appear in Boot Manager as it uses same loader as Vista? Is there anyway to force it using easyBCD?

Addendum:

OK, I did another Windows 7 install to the same partition as before and I can triple boot. It must have been a bad install before? The only difference is this time I installed from DVD. Windows 7 installed a "Earlier version of Windows" . This is XP. Since there was already an entry for XP from the dual boot, I deleted that entry and kept the Windows 7 one.
 
Last edited:

Terry60

Knows where his towel is.
Staff member
#2
Hi Doc, welcome to NST.
Glad you managed to find the info to fix your problems without help.
 
#3
Thanks. But this is what is confusing me now. This is bootloader from easyBCD 2.0 beta in Vista (after each OS boots sucessfully):

There are a total of 3 entries listed in the bootloader.

Default:Windows Vista
Timeout: 5 seconds
Boot Drive: C:\

Entry #1
Name: Windows Vista
BCD ID: {current}
Drive: C:\
Bootloader Path:\Windows\system32\winload.exe

Entry #2
Name:Windows 7
BCD ID: {faaf2f46-702b-11de-997c-dbb1f4df5040}
Drive: K:\
Bootloader Path: \Windows\system32\winload.exe

Entry #3
Name: Windows XP
BCD ID: {ntldr}
Drive: C:\
Bootloader Path: \ntldr

I have Vista in C:\ partition, XP in D:\ partition and Windows 7 in K:\ partition and I understand that XP needed to be set to C:\ because it wouldn't boot from startup when I had it set as D:\ , but how is Windows 7 managing to boot up when its Boot Manager set it as K:\ ? Shouldn't it also be set as C:\ ? I don't want to try this, so don't ask me to! Drives C:\ D:\ and K:\ are all partitions on the one hard drive.
 
Last edited:

Terry60

Knows where his towel is.
Staff member
#4
The reason why XP points to C is because it's a legacy bootloader. The BCD is not locating XP, NTLDR is, via boot.ini. Because boot.ini describes where XP is, the BCD can't use the one on D: (because it has no idea that's where it is), so it insists on having a copy of NTLDR ntconnect.com and boot.ini in its own partition so it knows where to find it. So the BCD points to the same partition as itself to find the copy of the XP boot files which then do the locating of XP.
It seems a strange thing to do, but the logic is all about backward compatibility.
You have an XP system, it's flagged "system" and contains the boot files.
You add a Vista system. It detects XP and the pre-existing "system" flag, so it puts bootmgr and boot\BCD in the "system" partition along with the XP files (A windows rule - all boot files for all multi-boots go together so that the boot process can locate them all)
If you break the backward compatibility design by installing an older system after a newer, Vista cannot put it's boot files with XP, so you are obliged to make the copies so Vista can find them.
Multiple copies of Vista or W7 are all designed to be booted from the BCD. You're just cataloguing the location of the Windows/System32 folder containing the bootloader element which completes the boot (winload.exe).
Longhorn systems have a separate manager and loader component. The loader always stays with the OS, the manager always goes to the "system" flag.
"how is Windows 7 managing to boot up when its Boot Manager set it as K:\ ? "
It isn't. That's the Loader. The Manager is static on C:\
When you point to the XP NTLDR (a combined manager/loader), you're calling it at the manager phase, whereupon it reads its own version of the BCD (boot.ini) and then continues as a loader with that information.
I hope that hasn't confused you further.
Read the multiboot site explanation, it's rather more detailed. You'll find it as the first link in the sticky thread.
 
Last edited:

JustinW

Super Moderator
Staff member
#5
Windows 7 is different, since the bootmanger is capable of booting it unlike XP where it must call the legacy loader. Therefore, it is correct in pointing to Windows 7's partition directly, as that is where it is installed.
 

JustinW

Super Moderator
Staff member
#7
Bootmgr can load both Win7/Vista. Now which bootmgr is being used depends on the system/active partiton you boot from or which bootmgr you chainload manually from another loader (ex: grub).
 

Terry60

Knows where his towel is.
Staff member
#8
Yes, you're using the Vista BCD and boot manager to locate the W7 boot loader. It works the other way round too. The bootmgrs are different sizes (there have been 3 sizes in Vista already, original, SP1 and SP2 versions), but they all still equivalently functional. I can only asume, as a user with no inside knowledge of MS code, that the differences are all down to fixes for transient bugs which have no effect on functionality in normal circumstances.
If you have a boot problem and you use your Vista DVD to "startup repair", it will put the original version of bootmgr back, not the SP2 version, but the system still boots.
 
#9
Sorry. I deleted my query on which bootmgr was being used as I googled for this and I believe that Windows 7 has copied its bootmgr to Vista (as expected for compatability). There is always a copy of bootmgr kept in C:\Windows\Boot\PCAT. The copy in the Windows 7 OS at that location is the same size (383,568 bytes) as that in the Vista partition. Although the size in the Windows 7 root folder is 333,257 bytes. Again doing a google search, this appears to be the Vista SP1 bootmgr (also it's the same size as the bootmgr in Vista partition at C:\Windows\Boot\PCAT. Why it's in the Windows 7 partition, I don't know as I expected the Windows 7 bootmgr to be there.
 
Last edited: