Dual boot problems XP/Vista...seperate disks & disk controllers

#1
So, I started by reading the tutorial at apcmag.com which was very helpful, but did not allow me to finish the proccess. Here is my situation, any help is appreciated!

I have a Gigabyte motherboard with two SATA controllers, the Intel ICH9r 6 port SATAII controller, and the Gigabyte 2 port SATAII controller. With either controller, the BIOS gives me the option of running them in "ACHI" mode, "RAID" mode, or "native IDE" mode. For quite a while I have been running Vista only, on a HDD connected to the ICH9r controller, running in ACHI mode. I have not had any problems with this configuration.

I wanted to add an extra drive with XP strickly for benchmarking. I decided to use the Gigabyte controller and run it in IDE mode. There are two reasons for this decision; XP will install without any additional drivers, and when in XP I will not see any of my HDDs running on the ICH9r controller unless I install the drivers for it (I'd rather it not have access to them for increased data security).

So the problem is this: I now have XP installed on "C:" drive and Vista also installed on "C:" drive....except that they are two different disks. You see, when XP installed, it was only aware of the single HDD attached to the Gigabyte SATAII controller (becasue it was the only one running in "native IDE" mode) and therefore was completely unaware of any other installed OS. Right now, in order to boot my desired OS, I have to change my HDD boot priority in the BIOS.

If I set the BIOS to load the XP drive first, XP loads as normal just how I want it to. If I change the HDD boot priority to favor the Vista drive, I get my boot manager screen with the list displaying both installations, but only Vista works. If I select XP, the computer almost immediatly restarts (it flashes a message first, but I cannot make out what is says:angry:).

I already tried copying the NTDETECT & NTLDR files to the Vista drive, but it did not make any difference. I think the Vista boot manager is confused because XP thinks it's installed on drive "C:", but Vista knows better.

BTW - the XP drive is the "H:" drive in Vista.

Anyone have any ideas?
 

mqudsi

Mostly Harmless
Staff member
#2
Hello miahallen, and welcome to NeoSmart Technologies.

We have our own documentation for the Windows XP dual-boot procedure at Windows XP - NeoSmart Technologies Wiki which explains further how the procedure works more than just giving you the steps to make it happen.

From your description of the problem (the computer restarting) I'd suggest the following:
Make sure NTLDR and NTDETECT are on the XP and Vista drives both.
Modiy boot.ini on the XP drive and change the values to indicate the correct controller and hard drive (see BOOT.INI and ARC Path Naming Conventions and Usage).
Copy the new boot.ini to the Vista drive as well.

You'll just have to play around with the values in boot.ini until it all works out.
 
#3
Thank you Guru, this does seem to be the answer to my problem. Now I just need to find the correct settings. If I have the boot.ini file on both drives, and the XP drive is unaware of the other drives presence. I would think I would not want to change that boot.ini...correct? If I do change it, then changing the boot device priority via the BIOS (to boot the XP drive first) causes XP to become unbootable. So, in my situation, after the Vista bootloader hands things over to the XP bootloader, wouldn't the same thing happen? Therefore, I have set out to find the correct settings for the boot.ini file on the Vista drive only.

I have a total of 5 HDDs in the machine, and two disk controllers.
ICH9r - SATAII 0...VISTA boot drive
ICH9r - SATAII 1...data drive
ICH9r - SATAII 2...data drive
ICH9r - SATAII 3...data drive
ICH9r - SATAII 4...empty
ICH9r - SATAII 5...empty
GB - IDE 0...optical drive
GB - IDE 1...empty
GB - SATAII 0...XP boot drive
GB - SATAII 1...empty

After reading the articles you pointed me to, it made sense to try two different settings:

multi(0)disk(1)rdisk(0)partition(1)
By my calculation, this would point to the first logical HDD on the second adaptor. Didn't work.:huh:

multi(0)disk(0)rdisk(5)partition(1)
By my calculation, this would point to the 5th logical HDD installed. This didn't work either.:angry:

I'm not really sure if I'm even close, what do you think? What else should I try?


Addendum:


multi(0)disk(0)rdisk(5)partition(1)
By my calculation, this would point to the 5th logical HDD installed. This didn't work either.:angry:
Just caught my error here. Should be:
multi(0)disk(0)rdisk(4)partition(1)

So, I tried this and the error changed, before it gave me an explaination in laymens terms that basically said it could not find Windows. Now it says I have a missing/corrupt file - /system32/hal.dll

So I tried coping the same info over to the XP drive as well (so that both boot.ini files are identical), but the error remains. However, when I did this I also lost the capability to boot into XP by switching boot device priority in the BIOS like I was before. So, I'm pretty sure I'm on the right track with only changing the boot.ini on the Vista drive, and leaving the XP boot.ini alone.

Addendum:

Now I tried reinstalling XP with all drives set to IDE mode, to see if I could trick it into creating the correct boot.ini file...still didn't work. The default boot.ini file showed:
multi(0)disk(0)rdisk(0)partition(1)

This gives me another missing/corrupt file error when attempting to boot via the Vista boot loader, this time for:
/system32/ntoskrnl.exe

Setting the XP drive to boot first in the BIOS allows me access to XP without issue.
 
Last edited:

Mak 2.0

Mod...WAFFLES!?!?
Staff member
#4

mqudsi

Mostly Harmless
Staff member
#5
OK, the ntokskrn/hal.dll messages are indicating that it has found a partition... but it is not the XP one.

Here's a crazy option that worked for me before:
Code:
[boot loader] 
timeout=30 
default=H:\WINDOWS 
[operating systems] 
H:\WINDOWS="Windows XP Professional" /fastdetect
 
#6
OK, the ntokskrn/hal.dll messages are indicating that it has found a partition... but it is not the XP one.

Here's a crazy option that worked for me before:
Code:
[boot loader] 
timeout=30 
default=H:\WINDOWS 
[operating systems] 
H:\WINDOWS="Windows XP Professional" /fastdetect
Interesting, this seems to have done something. Now, when I select XP from the first bootloader, I get a second bootloader. But, now I'm running into the same problems as before after selecting either choice from the second bootloader.

I deceided whatever the problem was, it should be fixed with a fresh XP installation...so i reformatted the XP drive and started the reinstall...but the problem remains. So whatever is causing the problem must be on the Vista boot drive.

Not sure what to do at this point, other than to go back to how I was doing it before, and selecting my desired boot drive manually in the BIOS.
 

mqudsi

Mostly Harmless
Staff member
#7
Honestly - I don't know either.

If you have a copy of Acronis Disk Director or if you can get your hands on one, boot from the bootable acronis cd and check the properties of the XP partition - it should tell you the correct ARC path.
 

mqudsi

Mostly Harmless
Staff member
#8
I believe the solution is to not mix real IDE with "Native SATA," and instead use AHCI + real IDE.