Vista bootloader + NTLOADER = reboot???

#1
My setup is as follows:

1. Windows XP on SATA drive, knows itself as C: and knows Vista as G:
2. Windows Vista on Primary Master PATA, knows itself as C: and knows XP as P:

I installed both without knowledge of eachother. I can boot either one just fine by changing the boot priority in BIOS, but now I want to be able to pick the OS to load using the Vista bootloader.

I installed EasyBCD. If I create an entry for XP with "C:" as the drive, I get the well-known NTLOADER missing error, as expected. If I change the XP drive to "P:" in EasyBCD, the computer just reboots, and the Vista bootloader menu comes back. If I copy the ntloader, boot.ini, ntdetect files from P: to C:, and then change the XP drive to "C:" in EasyBCD, the computer, again just reboots.

This suggests to me that it's actually finding ntloader on both C: and P:, but for some reason it just reboots. To verify the health of ntloader, I inserted a bogus entry in XP's boot.ini, and set the XP drive as the boot drive in XP. The XP's boot menu shows and I can boot XP fine. This should mean that both ntloader is fine and that my boot.ini is correct, right? So what gives?

Thanks so much if you have any ideas!!! I've rebooted about a million times now. :wink:
 

mqudsi

Mostly Harmless
Staff member
#2
Hi lumbus, welcome to NeoSmart Technologies.

Please read our documentation on dual-booting Windows Vista and Windows XP here: Windows XP - NeoSmart Technologies Wiki

You need to copy these files to C:\, set the XP entry to C:\, and modify your boot.ini to reflect the new drive location.

When you switch drives in the BIOS, you're changing the way your drives are ordered.
 
#3
Thanks, Computer Guru! I tried that, setting the rdisk to 1, 2, 3, but the same thing still happens.

Here's what I don't get about this: I would understand it if my XP boot menu would show, and when I select something in the menu, I get some sort of error saying the OS can't load. However, before the XP boot menu even shows, the computer reboots. Is this the expected behavior?

Thanks!!
 

mqudsi

Mostly Harmless
Staff member
#4
It depends, how many entries do you have in boot.ini?
 
#5
Right now I have two: One that works and loads XP when I have set the XP drive as the boot drive in BIOS. The other is a fake one that's a copy of the first one, with a different partition number. The boot menu does show, when I have the XP drive set as the boot drive. That's why I think it's odd that it just reboots when I have the Vista drive set as the boot drive and try to load ntloader from the Vista bootloader.

Thanks!
 

mqudsi

Mostly Harmless
Staff member
#6
Do you have NTLDR and NTDETECT and BOOT.INI on the boot drive? All of them?
 

mqudsi

Mostly Harmless
Staff member
#8
Please post:

1) EasyBCD | Diagnostics Center | Copy Debug Data
2) EasyBCD | Tools | Edit Legacy Entries
 
#9
Ok, here's the info:

Code:
Windows Boot Manager
--------------------
identifier              {9dea862c-5cdd-4e70-acc1-f32b344d4795}
device                  partition=C:
description             Windows Boot Manager
locale                  en-US
inherit                 {7ea2e1ac-2e61-4728-aaa3-896d9d0a9f0e}
default                 {fb015520-9344-11dc-b0b2-ef95254d8fb6}
displayorder            {fb015520-9344-11dc-b0b2-ef95254d8fb6}
                        {25d34689-9339-11dc-ad5d-0013d44f47b9}
toolsdisplayorder       {b2721d73-1db4-4c62-bf78-c548a880142d}
timeout                 30
Windows Boot Loader
-------------------
identifier              {fb015520-9344-11dc-b0b2-ef95254d8fb6}
device                  partition=C:
path                    \Windows\system32\winload.exe
description             Microsoft Windows Vista
locale                  en-US
inherit                 {6efb52bf-1766-41db-a6b3-0ee5eff72bd7}
osdevice                partition=C:
systemroot              \Windows
resumeobject            {fb015521-9344-11dc-b0b2-ef95254d8fb6}
nx                      OptIn
Real-mode Boot Sector
---------------------
identifier              {25d34689-9339-11dc-ad5d-0013d44f47b9}
device                  partition=C:
path                    \NTLDR
description             Microsoft Windows XP
Code:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect /usepmtimer
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Professional 2" /noexecute=optin /fastdetect /usepmtimer
 
#10
Hi lumbus,
My setup is as follows:
1. Windows XP on SATA drive, knows itself as C: and knows Vista as G:
2. Windows Vista on Primary Master PATA, knows itself as C: and knows XP as P:
I installed both without knowledge of eachother. I can boot either one just fine by changing the boot priority in BIOS, but now I want to be able to pick the OS to load using the Vista bootloader.
Let me see if I have this part straight cause your doing a lot of switching around here and I want to be sure I'm understanding it all.
1) You have two separate drives each one containing a partition with a different MS OS on it.
2) These two partitions were installed independently of each other, and up to this point you have been dual booting by switching your drives boot priority in the BIOS.
3) The SATA drive contains the XP installation, and when your booted onto it (by switching boot priority SBP- from here on) the drive letters are assigned as XP=C: Vista=G:
4) The PATA drive contains the Vista installation, and when your booted onto it by SBP the drive letters are Vista=C: XP=P:
I installed EasyBCD. If I create an entry for XP with "C:" as the drive, I get the well-known NTLOADER missing error, as expected.
Note: I will use BLDR in place of Bootloader from this point forward, Vista BLDR indicates the BCD Store and all the components installed by Vista to get you from the BIOS to the (Vista) OS Login Screen. ; XP BLDR indicates the ntloader, boot.ini, ntdetect files, which are necessary to get you from the BIOS to the (XP) OS Login.
5) Okay I think we are on the same page so far, here is where you start to lose me. You have installed EasyBCD (version 1.7.1? you don't say which version your using), You created an NT entry in the Vista BLDR in this case if your using 1.7 or above it selected the boot drive automatically that should be C: since you are booted onto the Vista drive. What you wrote above more or less confirms that since before you copied the files to C: you got the NTLDR variant.
If I change the XP drive to "P:" in EasyBCD, the computer just reboots, and the Vista BLDR menu comes back.
6) Here you tell the Vista BLDR to look on the root of the P: drive to find the XP bootloader files and my interpretation of what your saying is that when you select the XP Entry that you created the system reboots and you end up at the Vista BLDR menu again. Is this correct?
If I copy the ntloader, boot.ini, ntdetect files from P: to C:, and then change the XP drive to "C:" in EasyBCD, the computer, again just reboots.
7) Here you are saying that you copy the XP BLDR files to the current boot drive and when you select the XP Entry that you created the system reboots and you end up at the Vista BLDR menu again. Is this correct?
This suggests to me that it's actually finding ntloader on both C: and P:, but for some reason it just reboots.
8) Here you state that you believe that the entry is finding the XP BLDR no matter which of the two installations of the XP BLDR you point it to. I would agree with that if that is what your getting at.
To verify the health of ntloader, I inserted a bogus entry in XP's boot.ini, and set the XP drive as the boot drive in XP. The XP's boot menu shows and I can boot XP fine. This should mean that both ntloader is fine and that my boot.ini is correct, right? So what gives?
  1. Here in an attempt to troubleshoot you verify the XP BLDR when booted from the XP partition by SwitchingBootPartition. You created a 2nd invalid entry and you got the XP BLDR menu. I would disagree with your assumption that everything is fine. What gives is that you tested something that you already knew was working, not the thing you are trying to make work. The 2nd invalid entry is a really good idea though lets try and use it in a different way to test number 8 instead of 9.
  2. Try leaving the Vista drive as the boot drive. Edit the boot.ini on both the C: and the P: drives put the letter C in your invalid entry on C: and P on your invalid entry on P: something like Pindows XP for the text to be displayed in the menu. If the XP BLDR is working when you set XP as C: in EasyBCD then instead of rebooting when you select the Windows XP entry in the Vista BLDR it should bring you to the XP BLDR menu. This would establish that everything is correct with the exception of your boot.ini, which is what I suspect your problem is.
Thanks so much if you have any ideas!!! I've rebooted about a million times now.
Some comments and ideas: You choose a non-standard method of installing for a dual boot, nothing wrong with it just makes things a bit more confusing as you can't follow one of the standard templates. Try applying whats in the wiki to your situation.
http://neosmart.net/wiki/display/EBCD/Troubleshooting+Windows+XP
http://neosmart.net/wiki/display/EBCD/Windows+XP
If you had installed XP first then Vista or Vista first then XP, ask yourself what do the steps in these installations have in common.
XP first then Vista would be the Microsoft recommended method, install the OS's in order of release so if you wanted to triple boot say XP, Server 2003, and Vista you would install them in that order because each Operating System is backwards compatible with their predecessors. But forward compatibility is impossible. So if you install XP then Vista IT INSTALLS BOTH BLDR's on the same boot drive so all you need to do is add an entry to the Vista BLDR when your through and your in business.
If you go the other way Vista first then XP. It installs the XP BLDR over the Vista BLDR so you have to reinstall the Vista BLDR and then make sure you have entries for both OS's in the Vista BLDR menu and your in business.
So what they have in common is that both BLDR's are on the same boot drive. So it follows that to fix your problem you have to pick a boot drive and stick to it then install the other BLDR over the working one. So you can either boot to Vista C: P:, or XP C: G:, but you need to get both BLDR's working on a single boot drive.
Following the path that you have a working Vista BLDR and you added an entry for XP, using EasyBCD you could have used MS's BCD edit just as easily, you problem doesn't lie in the BCD editor of choice. EasyBCD appears to be working correctly. You copied the XP BLDR to drive C: unedited. Have you gone into Disk Manager and looked to see how the drives are assigned in Vista and made sure that your XP entry in boot.ini points to the XP disk and partition numbering in Vista? Do your Vista and XP installations match exactly. We know that the XP partition is multi(0)disk(0)rdisk(0)partition(1) when XP is the boot drive. But is it the same when the Vista drive is the boot drive? If not when you select the entry from the Vista BLDR menu and it doesn't find an OS where you said it would be it would then reboot the computer.
Sorry I am so long winded :smile:
 
#11
ruf1,

Thank you for taking the time to read my posts carefully and write all that! :smile:

As far as I can tell, you figured out almost exactly what I was trying to say.

Try leaving the Vista drive as the boot drive. Edit the boot.ini on both the C: and the P: drives put the letter C in your invalid entry on C: and P on your invalid entry on P: something like Pindows XP for the text to be displayed in the menu. If the XP BLDR is working when you set XP as C: in EasyBCD then instead of rebooting when you select the Windows XP entry in the Vista BLDR it should bring you to the XP BLDR menu. This would establish that everything is correct with the exception of your boot.ini, which is what I suspect your problem is.
If I understand you correctly, I had already tried this, and the computer would just reboot instead of pulling up the XP boot menu. This is what I was so confused about. It was to the point where I started to suspect some odd compatibility issue between my hardware and the boot loaders.

However, I decided to try it again anyway, and lo and behold, it's all of a sudden working! Here's a little twist though: While waiting for you to post, I decided to install a third OS. :wink:This time I installed it on a partition on the same physical drive as Vista though. As part of that, the Vista boot loader got trashed (as expected). It was after repairing the Vista boot loader using the install DVD, that I read your post and tried it again. I wonder if it was actually the Vista boot loader that was somehow broken.

You choose a non-standard method of installing for a dual boot, nothing wrong with it just makes things a bit more confusing as you can't follow one of the standard templates.
Yep, deliberately so. I wanted to avoid getting the annoying non-C: system drive in Windows. I also wanted the other drive safe while installing the next copy Windows, to avoid any accidents (formatting the wrong drive can be interesting. :wink: ). I thought it'd be easy enough to fix the booting situation afterward. Turned out to be a little more trouble than I had anticipated.

XP first then Vista would be the Microsoft recommended method, install the OS's in order of release so if you wanted to triple boot say XP, Server 2003, and Vista you would install them in that order because each Operating System is backwards compatible with their predecessors. But forward compatibility is impossible. So if you install XP then Vista IT INSTALLS BOTH BLDR's on the same boot drive so all you need to do is add an entry to the Vista BLDR when your through and your in business.
If you go the other way Vista first then XP. It installs the XP BLDR over the Vista BLDR so you have to reinstall the Vista BLDR and then make sure you have entries for both OS's in the Vista BLDR menu and your in business.
So what they have in common is that both BLDR's are on the same boot drive. So it follows that to fix your problem you have to pick a boot drive and stick to it then install the other BLDR over the working one. So you can either boot to Vista C: P:, or XP C: G:, but you need to get both BLDR's working on a single boot drive.
I agree with almost everything you say... And I must admit that it's been a long time since I was messing around with dual (or triple) boots much... However, I believe that it should be possible to have the NT boot loader on a separate drive. What actually gets trashed when you install one OS over another are the contents of the MBR, right? And shouldn't any decent loader be able to launch something off another drive? I'll go back and experiment with that later when I have time and I'll try to report back.

Anyway, thanks a lot!

Addendum:

Well, I did a quick test and changed the XP boot drive to P: in BCD, but it seems to still pick up the boot.ini from the C: drive (and it's still working). So I'm not sure what that means, but that's all I have the energy for right now. :smile:
 
Last edited:
#12
When you ran the Vista disk you did the repair I am almost sure of it. I went through the same hoops awhile back and IIRC that aligned the system drives as far as partition numbering went. Well glad to hear you have everything up and running to your satisfaction. For future reference if you install XP first then Vista, they will both be C: in there respective systems the Vista BLDR is that well written anyway. Also the way I worded the same drive is incorrect, and Vista can boot from a different partition its just the way it more or less works out if you install it following that method.

Check out this link when you get a chance http://www.multibooters.co.uk/system.html looks like the server is down ATM but it has some really good visual aids and some well written text.