system32 hal.dll error at boot


Hello to all I first want to say I love the Easy BCD great work. Now to my problem I upgraded my Hard drive from a 500 sata to a 750 sata. I used CasperXP to copy over my two partitions the Vista on C and the XP pro on N. Now I can boot to vista fine but when I try to boot to xp I get a windows root>\system32\hal.dll missing or corrupt error.

I believe there could be several things causing this but I thought I'd pose this to the forum for help. I don't know if the boot.ini manager can be fixed with Easy BCD or do I need to use my install disks to fix this? Any help would be appreciated.

Thanks in advance.
Copy or clone? Simply copying a Vista primary here from one drive to another failed to get anywhere. Likewise XP would need new mbr entries most likely. You can either try typing in the Fixboot and Fixmbr commands at the recovery console prompt when booting with the XP install disk or perform a repair install. Note that the startup repair tool for Vista will have to be used after as well as redoing the configuration with EasyBCD once XP is up and running.

The Hal.dll file can also be expanded from the I386 folder on the XP cd in order to see if that will get XP going while usually not. Simply type in at the optical drive prompt like "D>i386\expand hal.dl_ C:\Windows\system32" to see if that will work.
Last edited:
Copy this software is very good better than ghost and it supports going from and IDE to SATA without problems (that is the reason I bought it). I was thinking that I might have to use the xp disk. So your saying fixboot and fixmbr then see if I can boot into xp if I can then put the vista dvd in and repair vista then use easybcd to edit the boot.ini file. If I got that right let me know cause I'll be starting right away.
PS here is a link to the casper program I'm not associated with them in any way just like the software and thought I'd clarify
You'll find the HAL error described in the wiki
It's due to boot.ini pointing to the wrong place to find XP
You should be able to fix it by just using Notepad to correct the entry in boot.ini.
You don't need EasyBCD. That's for the Vista BCD which is a nightmare to edit without it.
Boot.ini is a simple text file and any text editor can fix it.
Last edited:
Generally the Fixboot and Fixmbr commands will see that done as well as seeing the correct entries rewriten in the mbr itself. The last option of course is a repair install of full reinstall for seeing a working copy of XP on the new drive.

With XP in a dual boot with Vista you may want to consider the HnS tool as well for protecting the Vista restore points once XP is up and running along with the EasyBCD. Terry60 can even fill you in more on that.
well I read the article on the boot.ini and even when back and looked at the boot.ini file on the 500 gb drive I replaced. There is no differencen in the file so I did not make any changes to the boot.ini file.
I did attempt to run the fixmbr but I could not get a boot to the dvd/cd drive. Vista won't allow me to perform a 1 time boot.
I'm thinking of using the option in the easybcd to uninstall the vista boot loader then try to boot to the cd fix the xp then go back to the vista dvd and run easy bcd over again. does this sound right? Again I'm not worried about restore points or anything like that I still have my working 500 gb drive with both partions on it so I can always throw that back in or copy the drives back over using Casper.
Vista doesnt cntrol booting from teh CD. That is done from the BIOS and the boot order. Check your BIOS to make sure yo uahve the CD as the first boot drive and you will be able to boot from teh CD.

The link that Terry gave about the Hal.dll error is right. You do not need to do the fixboot and fixmbr. What you have to do is adjust the settings in your current boot.ini to match that of your system.

Double-check that multi() and disk() are both set to 0, and verify that rdisk(x)partition(y) points to the correct partition where Windows XP is installed.

Basically what this is saying is that in the boot.ini file the rdisk and partition are not setup right. They do not point to the correct drive or partition or both.

If you wish to post a screenshot of your drive setup from Disk Management we will gladly help you get the right numbers in there. To get that up Start>Right click on Computer (My Computer)>Manage. On the left side fo that screen click Disk Managment.

Take a screenshot of that screen and post it. Sadly what i believe is happening is that hte drive orders is not matching from XP to Vista. Where XP is recognizing it self as a different setup that Vista is recognizeing it.

Doign a fixboot and fixmbr from within the XP setup will not give you the right information as it is reading it as XP reads it. Not how Vista reads it or the Vista bootloader will read it.

I hope that makes some sense. I am not even fully sure if all that is right. But that is the train of thought i have on this issue.
Is the new HDD on the same connection as the old one you've cloned used to be ?
The boot.ini's will be identical if you've cloned the system, but that might be the exact problem if the new boot.ini is pointing to where the old system used to be connected, and not where the new one actually is.
i.e. the rdisk() number might be different now. Swapping the connectors to match or changing the rdisk() will cure the problem in that case.
Do as Mak said and post the info if you're not sure, and we'll take a look for you.
The use of the recovery console is seen when booting up with the XP disk not the Vista dvd. Once the Vista drive is set as the default in the bios hard drive list and the XP files on copied onto the Vista primary the rewrite of the boot information will see the correction made on the Vista drive.

That is followed by booting with the Vista disk to use the startup repair tool. You want the boot.ini on the VIsta primary pointing to the XP installation from there not the copy on the XP drive/partition itself to see a working dual boot and entry made for XP in the Vista boot loader.

When using the HnS tool after Vista is set as default for that while XP can be set as default in the EasyBCD entries. With Vista and XP on two separate drives here XP was initially installed as a stand alone on the second sata with the Vista drive actually unplugged. Later once the boot files for XP were copied onto the Vista primary root and the recovery console commands were used for XP the Vista drive then became the host for both versions.

The Vista mbr entries then had to be repaired followed by then successfully adding XP into the Vista boot loader. Presently XP is a boot option seen in the Grub4Dos portion of the HnS tool rather then any entries made with EasyBCD to see a working dual boot and the HnS tool at work. That became a one step rather then twp step boot process with working results.

This was also the reason on the inquiry about a new download page for referring more to the HnS tool even while still in beta. It's certainly proven itself an effective tool here with the testing done so far.
Sorry I have not gotten back on the board I was away and did not get a chance to work on this until just now. I appreciate everyone posting suggestions I hope we'll soon get this working again. Maybe I need to explain better what is happening.
Obviously I can boot to vista no problem. When I attempt to access xp on the boot option window I get a message. I'll have to write that down and repost. But needless to say I can not get my machine to boot to the dvd drive even though the boot order is set to dvd first. I have tried the one time boot option I think f10 or f12 but I get that screen display about vista. I don't believe I changed the sata cables to the drive but I"ll check that on before I rebot to copy the message I'm getting then I"ll post that. I'm just at a loss as to why my boot file is no different and yet I'm having these problems. Here is a copy of the boot.ini if that helps.

[boot loader]
[operating systems]
multi(0)disk(0)rdisk(0)partition(3)\WINDOWS="Microsoft Windows XP Professional" /fastdetect /NoExecute=OptIn


Well to update I was able to get booted to the cd and I ran the fixmbr fixboot but that did not correct the problem I still get the missing hal.dll error. Now I don't know what to try next.
Last edited:
Can you post a screenshot of your disk management so we can see where the boot.ini should be pointing.
Or you can try just changing the rdisk and partition numbers till you hit the combination that works.
the post message box won't allow a graphic file only by http. Is there a way I can post it? I have the screenshot.

Sorry found it in the advanced options Here is the screen shot

I reduced the quality to keep the file size down if you need something more detailed let me know.


  • screenshot.bmp
    306.5 KB · Views: 8
Last edited by a moderator:
change the partition number in boot.ini to 2, in both places
You must have had your partitions set up differently on the old disk
Vista is 1 XP is 2 and Linux is 3
Last edited:
well Terry u were right on once I changed the partition it boots fine to either OS.
Until you said about the partitions being setup different I had not thought about it but yes there were three partions on the 500 gb drive storage xp and vista.
I appreciate the help hope I can return the favor some time.
The line in the boot.ini file once corrected should be something like "rdisk(0)partition(2)" for XP there. Vista and Linux are excluded from the boot.ini file altogether.