EasyBCD not so easy?

#1
All the posts I see about dual booting Vista and XP make it sound like you don't even need a utility like EasyBCD to dual boot the system. If you have XP installed on one drive and then install Vista on another, everything makes it sound like the Vista boot loader sees XP and adds an entry for it. Well I found that's not true, so I went hunting and found EasyBCD, which also makes it sound very easy, just click a few buttons and there you go!

Well that's not true either, and I see a lot of posts supporting the fact that this is a common issue. When I try to boot to XP, I get a failure about /NTLDR being missing or damaged. I read through the posts here and the wiki information and I get a whole lot of contradictory (or at least very unclear) information. Based on what I'm seeing, there needs to be a boot.ini, ntldr, and maybe ntdetect.com file on one or more of the hard drives. Since these files don't exist, and I know they had to before Vista was installed, either Vista or something else erased them apparently.

Now, what is not at all clear is where these files need to go for Vista/EasyBCD to be happy. I copied them from another XP system to the drive that has XP on it. Since the drive is IDE 0 master the disk settings in the boot.ini are the same as any default install. Now when I choose XP from the boot loader it just reboots the computer again instead of booting to XP or giving the ntldr error. Clearly this is not easy, even for a tech, and the instructions aren't entirely correct or clear.

So, here is the setup. Vista is on a SATA drive, XP Pro is on IDE 0 master, there is only a single primary partition on each drive. Vista boots. How do I make XP a viable boot option instead of one that kicks errors or reboots the machine? Has anyone solved this mystery succesfully? I see posts along these lines, but no confirmed solution after suggesting they do what I already did, which didn't work.

Thanks for any help,
Ebon
 
#3
As I mentioned, I did read the wiki, and it contains contradictory statements and information that has not worked to correct the issue thus far. Rather than taking random stabs in the dark, I thought I'd check to see if anyone had a clear and definitive answer.
 

mqudsi

Mostly Harmless
Staff member
#4
Post a copy of your boot.ini.
 
#5
[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
 

mqudsi

Mostly Harmless
Staff member
#6
Did you copy both NTLDR and NTDETECT.COM to the boot drive?
 
#7
Which boot drive? I would assume they only need to be on the drive with XP since that's where the Vista boot loader points to. Is there some reason they need to be copied to the Vista drive? This is one of the things that was unclear in the wiki, and copying the XP boot files to the Vista drive seems counter to the setup.
 

mqudsi

Mostly Harmless
Staff member
#8
OK, If you'll do Diagnostics | Copy Debug Data then paste that here I'll be able to determine which is the boot drive.
 
#9
I copied the 3 XP boot files to the Vista drive despite that making no sense. The behavior changed, now when I choose the XP boot option I'm told system32\hal.dll is missing or damaged.

Here is the diag dump you asked for

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                 {4e31cfe8-7dd4-11dc-9007-ead0a21930b9}
resumeobject            {4e31cfe9-7dd4-11dc-9007-ead0a21930b9}
displayorder            {4e31cfe8-7dd4-11dc-9007-ead0a21930b9}
                        {abc3b40e-7dc1-11dc-980a-001143c356b8}
toolsdisplayorder       {b2721d73-1db4-4c62-bf78-c548a880142d}
timeout                 10

Windows Boot Loader
-------------------
identifier              {4e31cfe8-7dd4-11dc-9007-ead0a21930b9}
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            {4e31cfe9-7dd4-11dc-9007-ead0a21930b9}
nx                      OptIn

Real-mode Boot Sector
---------------------
identifier              {abc3b40e-7dc1-11dc-980a-001143c356b8}
device                  partition=D:
path                    \NTLDR
description             Microsoft Windows XP
My boot.ini is above. Based on the wiki I confirmed drive and partition specifications using the linux option in the add section of EasyBCD which shows me the drive with XP (40gb) is at drive 0 partition 0, and the drive with Vista (80gb) is at drive 1 partition 1.

I don't understand why copying the 3 boot files to the Vista drive had any impact on behavior when the boot loader info points to d:, unless the path variable is not being passed as being on d: and it's looking at c:, which would explain the missing hal.dll since that's on the other drive. However, there is nowhere to change the path setting in EasyBCD. I'm also slightly concerned about the fact that when I was running XP before Vista was installed, XP was running on e:, not d:, because XP letters the drive differently. I don't think that should have any impact however since as I understand it drive letters are assigned by the OS, though that makes me wonder how the Vista boot loader could use drive letters instead of disk designations, unless EasyBCD just doesn't work or is showing bogus information.

Any idea what's wrong here?
 

mqudsi

Mostly Harmless
Staff member
#10
There's a saying, don't bite the hand that feeds you.

I'm more amused than challenged by your constant hinting that EasyBCD simply doesn't work - there is just too much evidence otherwise for such a comment to be anything other than a joke.

At any rate....

Change the drive letter in EasyBCD for the XP entry from D: to C:
Make sure that NTLDR and NTDETECT and BOOT.INI are on C:
You do not need them on any other drive.

To me, your boot.ini posted in the OP looks fine - just be sure to stick it in drive C:

Addendum:

Wait a minute...

If that didn't do the trick:

Re-reading your first post, your Vista is on SATA and XP is on IDE.... Try switching the numbers around - use rdisk(1)partition(1) instead.
 
Last edited:
#11
Well let me start by saying I didn't mean to say EasyBCD doesn't work, that obviously isn't the case. My implication was more that something about the documentation (wiki, which seems to be offline at the moment?) or interface was not clear, because a lot of people seem to be having a similar issue and something seems counter intuitive. No offense intended, just saying that if we figure this out, there might be something we find can be clarified to help others in the future.

Anyway, I made the change you indicated and I still get the missing hal.dll error. Am I correct in thinking the logic here is the boot files all go on one drive, and then the boot.ini file points those boot files to the drive that contains the system files? That bit of thinking had evaded me in my initial frustration, and though it makes sense, I'm still stuck with this hal.dll error now for some reason.

Any thoughts?

Addendum:

oops, my reply was in progress before your addendum hit :smile:

That did the trick! Thanks for sticking this out and hitting on the solution.

Ok, so here are my offerings to clarify the wiki (as well as I can remember what is on that page)

There is indication in various places that the XP boot files should be on one drive or another, but the core statement needed in all places is that all boot files need to be on the SAME volume, which is the main boot volume. I'm not entirely clear how you determine the boot volume, I don't know if it would be my IDE drive instead of SATA if I had installed in a different order, but something to help determine that would be helpful I think.

Once you know where all the boot files go, which seems like it might be a stumbling block for a lot of people, then there is the issue of the boot.ini and settings in EasyBCD. The docs/ interface made it seem to me that I wanted to specify the volume with the XP system files, but I need to specify where the boot files are, not the OS (granted that would have been somewhat less of an issue if I'd understood the boot files needed to be on the other drive as well, but none the less clarity in all places can only help). In regards to the settings for the boot.ini, I followed the suggestion of using the linux section to determine drive numbers, but apparently this doesn't work. That part on the wiki should be removed if it's unreliable, or modified to cover whatever went wrong in my case, not entirely sure of the issue there.

Again thanks for the help and I hope these suggestions help others/ can lighten the support load in the future. If I can be of any help with this let me know, glad to lend a hand.
 
Last edited:

mqudsi

Mostly Harmless
Staff member
#12
Don't worry about it, no hard feelings :smile:

Wiki is currently offline, we just moved to a new server.

Your thinking is correct, the boot files go on the boot drive, they read boot.ini and find out where to load XP from.

I've never seen the hal.dll error associated with a dual-boot misconfiguration, it's usually caused by an XP error - which probably means that Windows XP is being found and loaded - and then it crashes.

Try adding
/safeboot:network /sos
after that fastdetect bit, and you should see detailed output of exactly where does this process reach before failing.

Addendum:

lol - I just did the same thing and posted while you were updating yours :tongueout:

I will take your advice and remove that bit about the Linux list, it clearly is inaccurate.

Once the Wiki is back up and running, I'm planning on re-writing the entire documentation to read more like a guide than a technical specification, any and all feedback then would be highly appreciated :smile:

At any rate, congratulations! :grinning:
 
Last edited: