Cannot figure out how to get BCD to work on separate hard drive installs

#1
Hi,

So here's what I want to do: I have two hard drives, and I want one to be exlusive for Windows Vista Ultimate 64 bit, and one exclusive for Windows XP Professional 32 bit. Furthermore, I want a rather specific arrangment for my booting options. I had this working correctly before I reformatted and reinstalled the XP drive. Since then, I cannot get it to work:

1) When the Vista Drive is selected to boot first from the BIOS, there will be no boot manager screen -- the computer will load straight into Vista with no options.
2) When the XP Drive is selected to boot first from the BIOS, there will be a boot screen, both with Vista and XP as an option (the default actually being Vista), and each choice boots their respective drive.

Like I said, I had this working before reinstalling XP. After reinstalling XP, I can only seem to get each OS to load directly, without a option to select the other (actually, I'm not sure if this is true for the Vista drive, however, I don't want a choice if I boot the Vista drive first).

So, what I've done is follow the directions here: http://neosmart.net/blog/2007/how-to-install-the-vista-bootloader-on-a-windows-xp-machine/

I did this while booting from the XP drive first from the BIOS. So, I have EasyBCD supposedly workin on the XP drive, however, I am never presented with a boot option screen -- I'm always directly booted into XP. I've added in many different combinations of the XP and Vista drives, and nothing I do seems to be able to bring up a boot screen -- it's always a direct load. I've tried resetting the BCD storage under diagnostics and Reinstalling the Vista Bootloader through Manage Bootloader -- nothing seems to have an effect.

It should be noted that the XP drive sees the Vista drive without any problems (and vice-versa), and that from within XP, the XP Drive is labeled C:, and the Vista drive is labeled T:

I have noticed something peculiar, though: For some reason, when I click to Add Vista under the T: drive (and there are only two choices, C: and T:smile:, when I go to the "View Settings" Tab, it says that the Vista Drive is the U: drive! Furthermore, looking at this drive under the "Change Settings" tab, it says that the Vista Drive is the C: drive! I can then change the Vista Drive to the T: drive, and then it will be correctly identifies in the View Settings tab as T: But, I don't know why that was happening.

Any help would be appreciated. Thanks.
 

Terry60

Knows where his towel is.
Staff member
#2
Hi Hannedog, welcome to NST.
When EasyBCD says drive "U", it's its way of saying "unknown". This generally happens when you've been trying to point it at a system instead of that system's boot loader.
Have a read of this illustrated guide to dual booting and it might help you understand what's going on when you boot one Vista system from a bootmanager on another.
The XP HDD will have an XP IPL program in the MBR which will take it directly to XPs boot sector to find NTLDR (which cannot boot Vista). In order to find the copy of Vista's bootmgr on your XP HDD you'll need to rewrite the MBR with Vista's version so that it seeks bootmgr instead of NTLDR.
You can do that with EasyBCD.
 
#3
Thanks for the response.

"You can do that with EasyBCD."

This is what I thought as well, which is why I was using EasyBCD on the XP install, so that it would put bootmgr on the XP drive. I had known beforehand that reinstalling XP would write over the MBR with an XP version. Following the steps I outlined in my original post, I would expect that the XP Drive's MBR was overwritten to point to Bootmgr, and with the options set forth by EasyBCD it would give me a boot menu where I could choose either XP or Vista.

However, no matter what I try, XP always direct-boots. No boot menu. I honestly don't know if Bootmgr is actually being used or not, but I would assume it would be since that is what EasyBCD should be doing. I've repaired the Bootloader, reset the BCD storage... nothing seems to work. Keep in mind I'm doing this all off the XP drive, while loaded in XP.

I forgot to mention in my first post that before I resorted to EasyBCD, I tried following the steps outlined in this article: http://support.microsoft.com/kb/919529

I would also note that the result of the first step said that the MBR might be "unreliable" since the drive couldn't be locked. I also ran into difficulties on the second step, since there were already entries for ntldr in the bcd due to my fiddling around with bcdedit.exe. After finally giving up on totally trying to learn the nuances of bcdedit, I decided to use EasyBCD, which seemingly promised a very easy solution. Except that... it doesn't seem to work.

Here's a configuration from EasyBCD run on the XP drive that I think SHOULD work, but does not. Any help here would be appreciated.

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 {e8709fb6-fa5f-11db-be4d-e219ece5282e}
displayorder {e8709fb6-fa5f-11db-be4d-e219ece5282e}
{15a27cf4-88f9-11dd-a153-0018f82b9484}
toolsdisplayorder {b2721d73-1db4-4c62-bf78-c548a880142d}
timeout 15
Windows Boot Loader
-------------------
identifier {e8709fb6-fa5f-11db-be4d-e219ece5282e}
device partition=T:
path \Windows\system32\winload.exe
description Windows Vista
locale en-US
inherit {6efb52bf-1766-41db-a6b3-0ee5eff72bd7}
bootdebug No
osdevice partition=T:
systemroot \Windows
resumeobject {e8709fb7-fa5f-11db-be4d-e219ece5282e}
nx OptIn
pae ForceDisable
sos No
debug No
Real-mode Boot Sector
---------------------
identifier {15a27cf4-88f9-11dd-a153-0018f82b9484}
device partition=C:
path \NTLDR
description Microsoft Windows
 

JustinW

Super Moderator
Staff member
#4
You need to change the boot sequence in your BIOS so that Vista's drive boots first.

Is it still booting straight into XP or is it going to Vista?

If its XP, the Vista bootloader still has not been recovered and you won't be able to boot Vista until that is done. Use a Vista DVD or the recovery disc on this site to accomplish this using Startup Repair.

If it is Vista, you've got the correct bootloader, but you'll need to install EasyBCD in Vista so that you can add the entry to boot XP. You may also need to modify the entries in boot.ini in addition to adding the entry so that ...rdisk(0)... equals ...rdisk(1)... so that it is pointing to the right disk for XP.
 
#5
Thanks for the response.

I'm not quite sure if you fully understand what it is that I want to accomplish. But maybe I'm just misunderstanding you.

"You need to change the boot sequence in your BIOS so that Vista's drive boots first."

Why would I need to do this? Keep in mind what I want: 1) a BIOS option that boots straight into Vista (previously this was accomplished by putting the Vista disk first in the BIOS), 2) a BIOS option that gives me a boot menu to choose between Vista or XP, Vista default (previously this was accomplished by putting the XP disk first in the BIOS).

Right now, when the Vista disk is first in the BIOS, Vista directly boots, and when the XP disk is first in the BIOS, XP directly boots.

"If it is Vista, you've got the correct bootloader, but you'll need to install EasyBCD in Vista so that you can add the entry to boot XP. You may also need to modify the entries in boot.ini in addition to adding the entry so that ...rdisk(0)... equals ...rdisk(1)... so that it is pointing to the right disk for XP."

To me, this makes it sound like your describing the following boot possibilities: 1) a BIOS option that gives me a boot menu to choose between XP or Vista, Vista default (this would be accomplished by putting the Vista disk first in the BIOS); 2) a BIOS option that boots straight into XP (this would be accomplished by putting the XP disk first in the BIOS).

However, this is clearly NOT what I want. Keep in mind, I had the desired booting situation worked out previously. Only when I reinstalled XP on my XP disk did I lose the option to have a Vista Bootloader option on the XP disk. I thought that EasyBCD would allow me to put a Vista Bootloader back on the XP disk in order to give me the boot options that I had previously.

As a side note, I know a way I could get the boot options to work again, without EasyBCD, but would require me to reinstall Vista (something I do not want to do). I would simply do a fresh Vista reinstall with both disks plugged in (this would put the Vista bootloader on the XP disk, however it would make a boot menu for the Vista disk as well), then do ANOTHER install with only the Vista disk plugged in (this would keep the Vista bootloader on the XP drive, however it would eliminate the boot menu on the Vista disk). So, the arrangement that I want is indeed possible, and given all the glorious praise I hear about EasyBCD, I would expect that I could do this with EasyBCD. But, I'm assuming I just haven't been clear enough in communicating in what it is that I want to accomplish.
 

Terry60

Knows where his towel is.
Staff member
#6
You should be able to achieve what you want with EasyBCD, but from your earlier description, I can't see what you're doing wrong, unless the BCDedit stuff you did earlier has complicated the issue.
Hang around though, as long as you've got access to both systems it's not urgent, and Guru will be around to see what ever's wrong that I can't spot.
 

JustinW

Super Moderator
Staff member
#7
The reason for making Vista the first boot device is due to the fact that XP's bootloader cannot boot Vista. When you get Vista booting, it is a lot simpler as well to go back and add the entry for XP using EasyBCD rather then trying to install Vista's bootmgr to an XP only drive.
 
#8
But Justin, I don't think you're understanding what it is that I want. I have no problems booting into Vista. However, if I set Vista as the first Boot device and then use that with EasyBCD, then how am I ever going to be able to have two BIOS boot options: 1) Direct Boot into Vista, and 2) Boot menu to choose between Vista and XP.

Clearly, if I use EasyBCD on the Vista disk, that will put a boot menu on the Vista disk. Then, there will be no BIOS option I can choose that can direct-boot into Vista -- I'll be left with 1) A boot menu giving the choice between XP and Vista, and 2) direct-booting into XP. This is NOT the arrangement I want -- had I wanted that I would have never needed to come here!

Terry seems to understand what it is that I want. I'll wait for Guru to respond. Thanks.
 
Last edited:

Terry60

Knows where his towel is.
Staff member
#9
I do understand exactly what you're trying to do, and it's perfectly possible. If I were there, able to dig around in your system at will, I'm sure I'd eventually spot whatever it is that's preventing it from working, but remotely I can't spot anything wrong. If CG doesn't turn up for a while, maybe I'll get you to post a few more screenshots and listings to enable me to look in more detail.
That said, I share Justin's puzzlement to some extent as to why you want your boot set up that way, but I guess you have some overarching masterplan where it makes perfect sense.
 
#10
"That said, I share Justin's puzzlement to some extent as to why you want your boot set up that way, but I guess you have some overarching masterplan where it makes perfect sense."

Isn't that the way most setups seem to people who don't use them? It is true; it may seem weird at first, but it is part of an "overarching masterplan."

It has to do with the fact that I want the OSs on separate hard drives, both for physical independence as well as a convenient way to enable logical independence (the article you sent me Terry contains a (complicated) way to remove the boot dependencies with multiple OS installs -- it was something that I didn't want to deal with, besides you won't get rid of the physical dependency).

Given that the OSs are on separate hard drives, one does have a bit more flexibility in terms of booting. Most people would prefer their computer to "automatically" detect what OS the user wants to load, thereby skipping a boot screen and decreasing the overall boot time. How this would be possible, other than through the computer gaining psychic abilities, I do not know. However, I can get closer to this idea when the OSs are on separate hard drives. You see, Vista is my main OS. Most of the time, I just want to go straight there -- no boot menu necessary, all that does is slow down my boot time a little bit. This requires a one-time BIOS setup.

However, there will be times where I'll need to use XP, and during those times, there will probably be multiple reboots involved, and even reboots and switching back between XP and Vista. Rather than always having to go into the BIOS to switch which OS to use (which takes considerable time, and an extra reboot), it would just make most sense to put a boot menu there. When the time subsides that I don't need to use XP anymore, then I can decide to just straight boot into Vista. Of course, I could just do all this within EasyBCD solely on the Vista drive, however, this too is not as convenient, and would be significantly harder to explain to someone how to perform correctly if I'm not there (i.e. I can give someone simple directions to change the boot menu from the BIOS; telling them how to configure a boot menu through EasyBCD, as simple as it is for me or you, would be over the head of a non-techie).

If you have two OSs installed on separate harddrives, I think you'd find that this setup is actually the most efficient one if you have a "main" OS.

Anyway, as for trying to figure out what's going wrong: to me, it seems like the IPL on the XP drive isn't pointing to Vista's Bootmgr, and instead going straight to Ntdlr. Somehow EasyBCD isn't detecting this, and that's the only way it seems possible that EasyBCD displays a correct-looking boot menu that has no effect (The menu I gave in prior post was one of many... I've tried all kinds of different things, even ones that shouldn't "work," but yet it has no effect -- straight boot into Vista).

Now, the first step I think I would be able to do is to check if Bootmgr is indeed being used on the XP drive or not. Is there a way I can definitely tell that this is happening?
 

Terry60

Knows where his towel is.
Staff member
#11
If you've used "install the Vista bootmgr" option and hit the "write MBR" button as your posts suggest, It should have overwritten the XP IPL and be going to bootmgr instead of NTLDR.
I've just had the thought that maybe it wrote the MBR to to Vista HDD, and never touched XP's MBR.
You could try it again with the Vista HDD temporarily disconnected to see if that makes a difference.
I too use Vista 99% of the time, but I simply set Vista as my default with a 5 second timeout, and an unattended boot every morning takes me straight into Vista. If I want XP, I just intercept it in that small window.
If 5 seconds seems too long to wait, you could always make it 2 or even 1 provided your fingers are sufficiently nimble and your brain not hung-over.
I use Vista Hide 'n Seek (HnS) as my boot manager, which gives me a single boot menu and has the benefit (by design - as the name suggests) of hiding Vista from XP and thus protects the Vista restore points from corruption by XP.
 
#12
Well, before I try this, here's a question: Why? Why would EasyBCD not be writing to the XP MBR? Secondly, the options I specify for booting on the XP drive have no effect on either drive, (i.e. meaning there is no boot menu on the Vista drive either, which is what I would expect). This would lead me to believe that it's not writing to the Vista drive MBR.

Also, as for Vista Hide 'n Seek, what does that actually do to hide the Vista partition from XP? Right now, I've just been using a registry edit to do that, and it prevents me from accessing the Vista drive while in XP; if there was a way so that I could "hide" the system restore points while still being able to access the Vista drive in XP, I'd be interested in that.
 

JustinW

Super Moderator
Staff member
#13
EasyBCD follows wherever the bootloader for Vista has been installed. In this case, it is most likely Vista's drive itself since it is apparent you have two systems on two drives operating independant of each other. You could try disconnecting Vista's drive and doing the restore, but it won't work if Vista's bootloader isn't stored on XP's disk short of disconnecting Vista's drive, booting from a Vista disc, and manually rebuilding the bootloader from the command line.


Addendum:


I use the same registry hack and I think HnS also makes the Vista partition inaccessible in XP. Vista HnS would probably still be useful anyway in this case since it'll automate most of the troubleshooting steps we've discussed and get Vista/XP dual-booting without much effort.
 
Last edited:
#14
"You could try disconnecting Vista's drive and doing the restore, but it won't work if Vista's bootloader isn't stored on XP's disk short of disconnecting Vista's drive, booting from a Vista disc, and manually rebuilding the bootloader from the command line."

I would agree with you, but the article I provided in my original post (http://neosmart.net/blog/2007/how-to-install-the-vista-bootloader-on-a-windows-xp-machine/) says otherwise. It specifically states that I can use EasyBCD to put the Vista Bootloader on the XP drive!
 

Terry60

Knows where his towel is.
Staff member
#15
If the MS registry hack is working for you (It did nothing on my setup), then you don't need HnS. It will hide the whole partition containing a Vista restore folder, exactly as you're already doing.
There is a feature of the BCD which can cause confusion and difficulty, in that it has an "always open" nature, which is why I suggested the possibility of hitting the wrong MBR.
(It's not part of the design philosophy of Vista to have multiple BCDs. Multiple Vista's are supposed to boot through the one BCD on the original Vista Install - Thats why there's the possibility of confusion when you do something that the BCD's not designed for.)
You shouldn't cause a problem by temporarily unplugging the Vista drive when you rewrite the MBR, that's what you're trying to achieve anyway. I'm suggesting a way of not causing a problem.
The reason why, if the wrong BCD is being accessed, that the Vista system doesn't react, could be that if it's the only thing being done on the Vista disk, you wouldn't notice it because it's merely replacing like with like. Also Vista will have a completely different lettering scheme in which your entries make no sense to it, if they were in the wrong BCD, but that's not what I'm suggesting might have happened.
(but I must admit I'm grasping at straws, trying to understand what's happening. The suggestion is one way of seeing if there's a grain of truth in it, and since you're trying to get the XP MBR changed, you can't do any harm in making sure that it's the only one available to be changed)
 
Last edited:
#16
Well, I seem to have finally gotten things working, although, there was an amazing amount of monkeying around inbetween. From my estimation, the current release of EasyBCD has some issues with it when working across separate hard drives in a situation like mine. Here's what happened:

First I tried following Terry's suggestion and disabling the Vista hard drive and re-doing things to see if it would have any effect. It didn't. No effect on booting whatsoever.

At this point I knew the Vista bootloader either wasn't working or wasn't on my XP disk. It didn't make sense for it to be "not working" though either, otherwise why would XP boot? So, I set out to try and find the existence of the vista bootloader on my XP drive. After showing System Files and Folders in Windows Explorer, I looked through all the boot files on the XP drive. Surprisingly (or perhaps more accurately not so surprsingly) I saw that "bootmgr" wasn't on the disk. So, I was like, "what the heck!" I was mad at myself for not looking for this sooner. So, I copied (not cut) the bootmgr from the Vista disk and put it on the XP disk. After restarting, viola! it worked. The boot menu was there, and both entries worked. I was dumbfounded as to why the bootmgr never got on the XP disk.

However, I wasn't out of the woods yet. The boot menu was present for when the XP drive was set to boot in the BIOS first. The final test was to go back to booting the Vista drive first and making sure that there would be no boot menu. Well, when I did that, it was worse -- Vista wouldn't boot period. I got the "error" screen with all that jazz on it. It didn't make a whole lot of sense to me why it would stop working, because I changed absolutely NOTHING on the Vista disk.

So, I went back to booting the XP drive first. This is where a lot of the weird stuff happened. After getting to the XP disk boot menu, I selected Vista (still worked), and once in Vista took a look at the BCD store and see what was up. The BCD store was obviously being reported from the XP drive. I then also decided to rename my entries instead of the default "Microsoft Windows" and "Windows Vista" to more descriptive entries. Didn't change anything else about it. Doing this correctly changed the entry names, however, when I selected XP, it no longer booted! Got an error screen saying NTLDR was corrupted. Ridiculous, I thought. Vista still booted, so I went back and took a look at EasyBCD. To my surprise, the XP disk had changed so that it was the "C:" drive, along with the Vista disk. This was obviously wrong (however I did not change this!), so, I tried switching it back to the "B:" drive (as it's represented in Vista). When I'd click "apply," the status bar would say "changes applied successfully!" however the selection automatically changed back to C:! I repeated this again and again with the same result.

So, I ended up moving the XP drive above the Vista drive in the ordering screen. Now I was able to save it to B:. After that, both XP and Vista were able to boot again from booting the XP disk first. However, I would consider this to be very strange behavior on the part of EasyBCD that it wouldn't allow me to save the XP drive to "B:" unless I had it positioned above the Vista drive in the disk ordering (I was still able to keep Vista the default choice, which is what I wanted, thankfully).

So, I got my Vista and XP drive working again from the XP disk boot menu. However, I still couldn't boot into Vista from booting the Vista drive first. Since when I would go into Vista through the XP drive booting first, EasyBCD would be showing the XP Vista store, I knew that doing any repairing would have no effect on the Vista disk itself, only on the XP one. So, the only choice I was left with was to put the Vista Installation media in the DVD drive and use the repair option there when booting from the Vista drive first.

After doing that, I was able to directly boot into Vista without a boot menu. However, I'm still perplexed as to how the Vista bootloader on the Vista disk got corrupted, because it was working fine, then when I copied over the bootmgr from the Vista disk to the XP one, it stopped working. My hypothesis is that when I first boot into Vista from going through the XP drive and then ran EasyBCD on it, EasyBCD was looking for the Vista drive boot info (because I had only run EasyBCD on Vista before by booting through the XP drive), but was confused to actually find the XP drive info (since it did boot from the XP drive this time), and then did some funky stuff to the actual Vista drive boot files. I don't see how else the Vista drive bootloader could have gotten courrupted when nothing was actually changed.

Anyway, one other thing I noted (and this still happens), is that when I boot into Vista by going through the XP vista bootloader, and run EasyBCD on it, switching between OSs under "Entry-Based Settings" on the "Change Settings" button will cause the drive letter to switch to C:. i.e. I have XP selected, and it shows "B:" as it should. Now, I switch to Vista, and it switches to "C:" as it should. However, when I switch back to XP, it stays at C:. This happens everytime, and I don't think this is the intended behavior.

Well, anyway, at least I got it working in the end. I would recommend the creators looking to how EasyBCD handles separate disks a little more, because it does seem a bit buggy.
 

JustinW

Super Moderator
Staff member
#17
At this point I knew the Vista bootloader either wasn't working or wasn't on my XP disk. It didn't make sense for it to be "not working" though either, otherwise why would XP boot? So, I set out to try and find the existence of the vista bootloader on my XP drive. After showing System Files and Folders in Windows Explorer, I looked through all the boot files on the XP drive. Surprisingly (or perhaps more accurately not so surprsingly) I saw that "bootmgr" wasn't on the disk.
Okay, let me sum up...

1) Each hard disk has its own mbr, which is a record of where to go to start loading an operating system.
2) The mbr on your Vista drive boots Vista while the mbr on your XP drive boots XP.
3) Since you installed XP on its own without Vista's drive attached, XP's boot files were placed on its disk and the mbr was modified appropriately
4) Vista must have been installed in the same fashion since its boot files are found there.
5) When you disconnect Vista's drive, EasyBCD cannot fix the mbr to point to the correct files because they are not on XP's disc.
6) XP boots straight away for two possible reasons based on your setup....

a) Your XP disk is the first boot device in the BIOS, so it doesn't even try to boot from Vista's drive. Since XP's code is installed to this drive's mbr, it boots XP without any issues.
b) Vista's drive is still disconnected, so like a) explains XP's drive is the only hard drive the system has to boot from.

Likewise, Vista's drive has Vista's code in its mbr, so Vista boots just fine if Vista's drive is put before XPs' in the boot sequence.

So really, you shouldn't have a need to repair the Vista's bootloader if Vista is booting ok. If its the other way around, you need Vista's drive plugged in to recover, but also remember that if it doesnt appear to have worked try changing the boot sequence for the other drive. It may have very well done the operation, but worked on the other drives mbr. Hope this helps explain things.
 

Mak 2.0

Mod...WAFFLES!?!?
Staff member
#18
EasyBCD has no issues working across multiple hard drives. I had EasyBCD working across 3 different hard drives with no issues.

The issue lies in your unique setup that you require. Not EasyBCD.

Having the system boot directly to Vista unless you hit a button and have that bring up a boot loader menu controlled by BCD is not a common setup. It is not even something that was thought of.

That is why you are having issues with getting it working. Not because you have multiple hard drives.
 

Terry60

Knows where his towel is.
Staff member
#19
Remember, there aren't supposed to be 2 BCDs. This is a Vista design feature. EasyBCD is mainly a GUI for BCDedit. What you are doing is using Vista bootmgr in a way that MS never intended. Part of the problem, is that because MS assumes there is only one BCD no matter how many Vistas, It doesn't open it, use it, close it.
Your issues are with the BCD rather than Easy.
 

JustinW

Super Moderator
Staff member
#20
Well technically there could be two bcds on each hard disk, but Terry is right. Why would you want Vista's bootmgr anyway on a drive that only boots XP? NTLDR is what is needed to do it, so really its just adding to the complexity of what you want to accomplish. Vista's bootmgr is perfect for Vista's drive (Which is probably already working) since it is appropriate for Vista and you can easily chainload NTLDR from XP's drive to start XP.

In a previous post in this thread I recommended making Vista's drive first in the boot sequence. I really think you need to go ahead and do that, see if Vista well boot, and go from there at this point.