Windows XP Pro and Vista Dual-Boot Issues.

Chaotic.

Member
Hi Everyone!

I've been kicking myself in the head trying to fix this issue and while browsing the search engines for a solution I've come here for a possible answer and support :O

Heres exactly whats going on...

I was attempting to setup a dual-boot configuration using two SATA HDDs, both of the same size and file system. My PC is an HP a6110n that came loaded with Windows Vista Home Premium (32 bit). I bought the new SATA drive and was hoping to install Windows XP Professional (64 bit) on it.

Basically this is how the setup goes:

- 320 GB SATA HDD on Sata Interface 1: C:\ for Windows Vista
- 10 GB Recovery Partition for Vista on Sata Interface 2: J:\
- 320 GB SATA HDD on Sata Interface 3: D:\ for Windows XP

I've tampered with the MBR numerous times and cant seem to get them both functioning without having to go into EasyBCD every single time and Reinstalling/Uninstalling the Vista Bootloader.

Is there any way to have a dual-boot configuration with Vista Installed on one HDD and XP Installed on a separate HDD AND having it work properly without any further editting later on?

Any help is greatly appreciated!
 
Hi Chaotic, welcome to NST.

What error do you get when you attempt to boot XP from the Vista bootloader? That'd be the first step in fixing this :smile:

If you've got a minute or two, drop by our introduction thread and tell us about yourself!
 
If you post your ntldr entry as it states in EasyBCD and boot.ini we can help you... :smile:

Gladly :smile: I'm not at home at the moment, I'll post it later tonight.


Hmm... After reading the guide it seems as if the NTDETECT.COM isnt in the root directory.

Basically I have one of two outcomes:

When the Vista bootloader is enabled, I can boot into my C:\ drive perfectly and boot Vista, but when I boot into XP it tells me the NTLDR is missing.

When the Vista bootloader is disabled, I cannot boot into my C:\ drive and the screen is blank when booting into Vista. The D:\ which contains Windows XP boots perfectly without any problems.

I'm thinking that I just dont have it setup correctly in EasyBCD for my current configuration. Hopefully some of this information was helpful, I'll post some more when I get home!

~ Cheers guys
 
Check in disk management which of your partitions is marked "system active" and make sure that boot.ini NTLDR and NTDETECT.COM are in the root of that drive, then XP boot should proceed.
 
That is... assuming that his XP entry is pointing to ntldr on the System Active parition.

The reason I mention this is that I've been able to boot XP with NTLDR, NTDETECT.COM, and boot.ini on any parition... you just haft to make sure that wherever the entry is pointing to (ie drive C:.) that these files are present at the root.

One you've assured this, it is a matter of changing the entry in boot.ini until you point to XP's partition and can successfully boot it.
 
Justin, I've written EasyBCD to
1) Search for NTLDR on all drives
2a) If NTLDR is found, point the XP entry to that partition
2b) If NTLDR is not found, point the XP entry to the boot partition (usually C:\).

So it's safe to assume that the XP entry is pointing to the boot partition in this case.
 
Justin, the reason why I said put them on the system active partition is because that's where they must be.

BIOS goes to the MBR of the first detectable device in its list of boot devices.

The MBR looks for the "active" flag on the partitions on that disk, and goes to the boot sector where it finds Vista boot manager. (This is not necessarily the Vista partition but it is always the "active" partition)

Vista boot manager uses the BCD to display the boot options and either loads Vista directly, or passes control to NTLDR if you chose XP.

The only way Vista boot manager can find the BCD , NTLDR and all its associated files, is by following the simple rule "they're all in the root of the 'active' drive"

The BCD contains the information on where to find Vista, and boot.ini contains the information on where to find XP.

Think of them as the maps to the treasure of their respective Windows systems, containing the "X marks the spot". There is no point in putting the map with the treasure, nobody will ever find it. That's why the rule exists. The map is always at the root of the "active" partition.

Don't confuse "active" with "Vista" or "C:\". It's a specific flag, just for this purpose.
 
CG, that is great to hear! I'm assuming the default would have been correct myself, but in the event it wasn't, I was just stating the other possibility. I am estatic that EasyBCD searches for the files and points to the correct partition in the entry it adds to Vista's BCD store :smile:

Terry, I have been working with mutliboot systems for a long time and your reasoning makes perfect sense to me, except:

It doesn't matter where the boot files are, as long as they are either at the root of a parition or that the entry in Vista's store points to the correct place. I bet that 99% of the time it is mislocation of XP's boot files that give users problems.

I posted elsewhere on the topic that I boot XP with ntldr, ntdetect.com, and boot.ini at the root of XP's partition. After being told that they could be on Vista's partition (esp. for those who had installed XP after Vista) I decided to do some experimenting myself. I copied ntldr, ntdetect.com, and boot.ini to the root of Vista's partition. I then changed the device property for my ntldr entry using bcdedit to point to Vista's partition rather then XP's (like it orginally was). I rebooted and booted XP from its parition using the start files from Vistas. Since I kept the orginals at the root of XP's partition, I can boot XP using either one.

This is another reason why I once suggested a user having trouble booting should have XP's boot files at the root of both thier XP and Vista paritions. This way, the default entry should point to at least one of the two and the user just needs to edit boot.ini to point to XP's partition if they are still having problems.
 
I copied ntldr, ntdetect.com, and boot.ini to the root of Vista's partition. I then changed the device property for my ntldr entry using bcdedit to point to Vista's partition rather then XP's (like it orginally was). I rebooted and booted XP from its parition using the start files from Vistas. Since I kept the orginals at the root of XP's partition, I can boot XP using either one.

Did you copy or move the files? Because it's possible that if you copied them, NTLDR was loaded from the Vista drive, but it used NTDETECT and BOOT.INI from the boot partition...
 
I too have the NTLDR, boot.ini etc on the XP root,(and Vista's boot folder etc), because that's the "active" partition on my system. I also have copies of the XP stuff on every other partition because HnS spread them around liberally, but it doesn't matter how many copies you have, its the ones on the active partition of the 1st boot device that will be used in a Vista/XP dual boot controlled by Bootmgr.
 
I entertain that thought CG, but here's my thoughts on the matter:

ntldr relies on the fact that ntdetect.com and boot.ini are in the same directory in which it resides in when ran. If they are not present, that is when you experience errors like the"boot.ini is missing error".

I'll haft to try getting rid of the files at XP's root and see if I can still boot it from Vista's partition.


Addendum:


Okay... We were all right and wrong in some ways:

BOOT PROCCESS:
1) Entry points to whichever parition is specifed by the device property and references ntldr either at the root by default or wherever your put it as long as you refer to the correct location in the path property.
2) NTLDR assumes that boot.ini resides in the same directory as it and displays the menu if it finds it.
3) When a paticular entry is selected, NTLDR passes control to NTDETECT.COM, assuming it is at the root of the parition the entry referenced. NTDETECT.COM then loads ntoskrnl from the Windows directory of that partition.

OBSERVATIONS:
1) I removed all of XP's boot files from the root of XP's partition and assured that the device property was set to use the files from Vista's partition. When I attempted to boot XP, I get an error screen that appears for only second before automatically rebooting the machine. After having restarted it several times, I was able to read what was printed on the screen. It read as follows:

Bad Boot.ini
NTDETECT failed to load

I assumed that it was NTDETECT that was causing the problem, otherwise, I would have prob. got a "boot.ini missing or corrupt" error.
2) I placed only NTDETECT.COM back at the root of XP's parition and continued to use NTLDR and boot.ini from Vista's partition. Whoa! XP boots just fine!

CONCLUSION:
As long as:

a) You point to ntldr correctly in the ntldr entry for Vista's bootmgr
b) boot.ini resides in the same directory as NTLDR
c) NTDETECT.COM is at the root of the parition whose entry you select in order to load the OS

You should be able to boot XP. This shouldn't matter in a normal siutation anyway, as ntdetect well be installed at the root of any Windows parition anytime a Windows OS is installed and it is independant of the order in which you install the OSes in.
 
Last edited:
Actually i just read the MCDST book recently and the NTLDR is important for XP's boot. As well as NTDETECT. But the Boot.ini file is not completely mandatory. That is mainly used to select the OS if you use a multi boot system. Since you are using BCD i do not see how boot.ini is so critical.

I just encountered a issue the other day where a user does not have a boot.ini file but the system still boots. There is the NTLDR and NTDETECT files. Just to show you what i am talking about i will give alink to that thread and copy the info right from the book.

Boot.ini - Computer Forums
^Thread

Understanding How Windows XP Starts

After the computer starts and hands off the process to the operating system, Windows XP continues to load in the following manner:

1. The MBR is a small program typically found on the first sector of a hard drive. Because the MBR is so small, it cannot do much. In fact, the MBR that is used in Windows XP has only one function: it loads a program named NTLDR into memory.

Tip

NTLDR is probably a name that you recognize. When a computer tries to start from a disk that is not bootable, but has been formatted with a file system that is compatible with Windows XP, you will often see the message "NTLDR is missing. Press CTRL+ALT+DEL to restart" (or something like it). If you see this message, Windows is telling you that either the disk that you are trying to start from is not a valid boot disk (maybe a floppy disk is still in the drive) or that the NTLDR file is invalid.


2. NTLDR switches your computer to a flat memory model (thus bypassing the 640 KB memory restrictions placed on PCs) and then reads the contents of a file named BOOT.INI. The BOOT.INI file contains information on the different boot sectors that exist on your computer.

3. If a computer has multiple bootable partitions, NTLDR uses the information in the BOOT.INI file to display a menu. That menu contains options on the various operating systems that you can load. If a computer has only one bootable partition, NTLDR bypasses the menu and loads Windows XP.

4. Before Windows XP loads, NTLDR opens yet another program into memory named NTDETECT.COM. NTDETECT.COM performs a complete hardware test on your computer. After determining the hardware that is present, NTDETECT.COM gives that information back to NTLDR.

5. NTLDR then attempts to load the version of Windows XP that you selected in Step 3 (if you selected one). It does this by finding the NTOSKRNL file in the System32 folder of your Windows XP directory. NTOSKRNL is the root program of the Windows operating system: the kernel. After the kernel is loaded into memory, NTLDR passes control of the boot process to the kernel and to another file named HAL.DLL. HAL.DLL controls Windows' famous hardware abstraction layer (HAL), which is the protective layer between Windows and a computer's hardware that enables such stability in the Windows XP environment.

6. NTOSKRNL handles the rest of the boot process. First, it loads several low-level system drivers. Next, NTOSKRNL loads all the additional files that make up the core Windows XP operating system.

7. Next, Windows verifies whether there is more than one hardware profile configured for the computer (see Chapter 6 for more information about hardware profiles). If there is more than one profile, Windows displays a menu from which to choose. If there is only one hardware profile, Windows bypasses the menu and loads the default profile.

8. After Windows knows which hardware profile to use, Windows next loads all the device drivers for the hardware on your computer. By this time, you are looking at the Welcome To Windows XP boot screen.[/code]^XP Boot process explained in full.

9. Finally, Windows starts any services that are scheduled to start automatically. While services are starting, Windows displays the logon screen.

XP Boot explained in full.
 
Last edited:
That is slightly different however, fact being that it is a single boot situation. Besides, what would be the need for a "Boot.ini is missing" error if it doesn't matter?

I think you are right about ntldr booting from frist drive, first partition in the event it cannot located boot.ini, but have not personally had an issue like that occur. But, assuming that is the case, I wouldn't know for sure in my experinment as it would boot straight away to the first parition without an error.

XP does happen to be the first partition on the first disk for me, so perhaps I can try deleting ntldr and boot.ini from XP's partition, adding just ntldr to Vistas', and using ntldr from Vista's partition durning boot time.

As far as ntdetect.com passing control back to ntldr, that is true. NTLDR is supposed to load ntoskrnl just like it says if ntdetect.com does its job and reports that there is a Windows directory on the parition it resides on from which to boot from.
 
Last edited:
Well the person did get that the "boot.ini was missing" message but it still boot. Which lead me to read more thoroughly about how XP boots. boot.ini is still important but from what i saw it is not completely critical. Without a doubt after thinking about it more the boot.ini is critical when dual booting with Vista since even with the NTLDR it wouldnt find the next file or if it did it could be Vista and not XP and not allow you to boot into XP.

If you understand that. :tongueout:

It was just a thought i had after reading up on the boot process of XP.
 
Wow... that is extremly odd. I'll have to try what I suggested for sure now. :smile:

boot.ini in a dual-boot seems understandable to me too because a user could have any number of system configurations going on... (XP on 6th partition, for example :smile:).
 
a) You point to ntldr correctly in the ntldr entry for Vista's bootmgr
b) boot.ini resides in the same directory as NTLDR
c) NTDETECT.COM is at the root of the parition whose entry you select in order to load the OS

Your conclusion in part C) isn't quite correct.

NTDETECT must be on the active partition. In your case, it just so happened that when you put it on the XP partition it was also the boot partition so you didn't have any problems. Putting it on the OS's own partition won't help if NTDETECT is not found on the boot partition.

Keeping all this in mind, I think EasyBCD 2.0 is going to require that NTLDR and NTDETECT.COM both be present on the boot drive, and chainload them from there as well in order to minimize confusion.

Addendum:

Well the person did get that the "boot.ini was missing" message but it still boot. Which lead me to read more thoroughly about how XP boots. boot.ini is still important but from what i saw it is not completely critical. Without a doubt after thinking about it more the boot.ini is critical when dual booting with Vista since even with the NTLDR it wouldnt find the next file or if it did it could be Vista and not XP and not allow you to boot into XP.

There is a default boot.ini embedded in NTLDR. It points to disk(0)rdisk(0)partition(1). If boot.ini isn't found, this embedded version is used instead.
 
Last edited:
There is a default boot.ini embedded in NTLDR. It points to disk(0)rdisk(0)partition(1). If boot.ini isn't found, this embedded version is used instead.

So that is how he was still able to boot! He may not have had the boot.ini but he had the other 2 files which allowed him to boot. So my theory that if ther was not boot.ini it will boot from the first drive first partition is right?
 
Back
Top