Boot Path Confusion

I have three harddisks. Windows is installed on disk(2). While boot.ini, ntldr, etc. are on disk(0). Whenever i change my bootdisk to disk(2) in the BIOS my computer does not boot? It only boots if I keep disk(0) as the bootdisk even though it does not have windows installed. Also if I add any new harddisk to my system it does not boot with the error message that the "harddisk configuration does not match...."

While in disk management windows shows disk(2) to be the boot disk.

I dont get it how come all the boot files viz. boot.ini etc. are on disk(0) when it does not even have windows installed?
I want to add another disk to install BCD. But I cant because of the above mentioned situation.
My boot.ini file is as under:-
[boot loader]
[operating systems]
multi(0)disk(0)rdisk(2)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect
multi(0)disk(0)rdisk(2)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect

awaiting your advice.


Mostly Harmless
Staff member
Hello and welcome to NST, Rocky.

You can see our detailed explanation of how the XP boot process works (and why it things are the way they are, including the location of NTLDR and NTDETECT, etc.) here:
Windows XP - EasyBCD - NeoSmart Technologies Wiki

If you add another disk you have two options:
1) Add it as the last disk, so the original disk numbering is not disturbed.
2) Add it wherever, then repair the Windows Vista bootloader using the instructions at Recovering the Vista Bootloader from the DVD - EasyBCD - NeoSmart Technologies Wiki

I actually don't see any reference to Windows Vista in your post though - do you have it installed? Or is this all XP-related?

Mak 2.0

Staff member
Remember that hte numbersing for disks and that for your system starts atr 0 (Zero) not 1. So while you may think it is disc 2 cause it is the second disc. It may in fact be disk 1 cause of the numbering system used by the BIOS.

Moved Discussion to Legacy Windows Area.
i have checked the numbering. Disk(0) has boot.ini, ntldr etc. It is designated as a system disk. Disk(1) has nothing. Disk(2) Partition(1) is designated as boot and has windows.

Mak 2.0

Staff member
Well then you can always use something like GParted to switch the system dick and boot to the partition with your XP stuff on it. Just make sure if you do this you move all the boot info over as well. the NTLDR, NTDETECT and boot.ini along with the boot folder.

Mak 2.0

Staff member
PM 8 doesnt work well in Vista. I have never heard of Patition Commander so i dont know if that would work. GParted is a free tool on a LiveCD. I dont see why everyone is so scared of it....


Mostly Harmless
Staff member
You can't change the system disk with any software, just the system partition on the boot disk.

Partition Commander can do the latter; just look in the partition properties for the "active" setting.
I installed partition commander. after partition commander scans the disks for os's, It detected only one os on my system. It showed that C:\ i.e.(Disk0) has windows XP professional. It gave me the option to boot from C:\ which it showed as having 19 GB space.
In the driveinfo screen, partition commander listed all my harddisks. It showed that only C:\ i.e. disk0 was bootable and windows XP professional was written next to it.
There is no windows on c:\ (disk(0). Windows is on disk(2).
I have no clue how all this has happened when I installed windows on disk(2).
Now if I add another drive i get the following error message:-
"hal.dll is missing or corrupt"

please advise.


Mostly Harmless
Staff member
Like I said, you're changing the physical order of the drives.

the hal.dll error is explained in Troubleshooting Windows XP - NeoSmart Technologies Wiki as an error that occurs when boot.ini points to the wrong drive/partition. You'll need to update boot.ini to make it work again.
The physical order as shown by windows is as follows:-
Disk0- C:-System Disk-Samsung SV 2042H
Disk1- d: & e:-Not designated
Disk2- G: & h:-Where G: is designated as boot (G: also has windows installed)-ST3320620AS

My boot.ini points to rdisk(2) partition(1). So it is pointing to the correct drive with windows on it.
Boot.ini, MSDOS.SYS, NTDETECT.COM, ntldr, config.sys, io.sys, msdos.sys are all on c: viz disk0.

In the BIOS I have to keep Disk0 viz. Samsung SV 2042H as boot disk even though it does not have windows installed.
If I make Disk2 viz. ST3320620AS as boot disk in bios I get hal.dll error even though it has windows installed.

The hal.dll error only comes if i add a new disk or if i make ST3320620AS as boot disk in bios.

right now my system boots as soon as i remove the new hard disk. It also boots as soon as i make samsung SV 2042H as boot disk in bios.

I have tried copying all the files viz. Boot.ini, MSDOS.SYS, NTDETECT.COM, ntldr, config.sys, io.sys, msdos.sys from disk0 to disk2, partition 1 (which has windows), even then system does not boot if i try to boot from disk2.

please advise now.

Mak 2.0

Staff member
The hal.dll can be copied voer right from teh Recovery Console to the XP drive. It would be the C:\Windows\system32 folder that it would go in and it would be right on yoru XP CD.


Mostly Harmless
Staff member
The hal.dll error is not anything to do with a corrupt file - it's boot.ini pointing to the incorrect partition, as is explained in Troubleshooting Windows XP - NeoSmart Technologies Wiki

Rocky, you're moving in circles - at the moment you are back where we started, and my initial solution still stands: your boot.ini when you add a new disk no longer points to the correct location.

The *solution* is to keep the system disk the system disk (i.e., don't change the boot drive), add the second disk or whatever, and modify boot.ini to point to the correct location.

I've added a section to the Rebuilding Boot.ini guide on automated recovery of boot.ini.

So go ahead and get to the point where you have a Hal.DLL error message, then follow the "Automated Creation of BOOT.INI" section of NeoSmart Technologies' guide here:
Rebuilding Boot.ini - NeoSmart Technologies Wiki