- Boot to the Windows recovery console
- get to the proper drive (usually is c:)
- type attrib -H c:\boot.ini enter
- type attrib -R c:\boot.ini enter
- type attrib -S c:\boot.ini enter
- type del c:\boot.ini enter (you are deleting the boot.ini this is normally the reason for the corrupt hal.dll)
- type bootcfg /rebuild fixboot
After the fix runs reboot and everything should be fixed. When I first did this I ran into an issue where I got an error "can fixboot on a corrupt registry" I ran and chkdsk /r after that completed I ran step 7 again and everything worked fine.
I have also heard an alternative solution fix this issue in the recovery console do the following command
Expand D:\I386\HAL.DL_ c:\WINDOWS\SYSTEM32\HAL.DLL
I have never tried this method so I cannot prove it works but if your issue persists it might be worth a try. If you get an "access denied" do the attrib command to the HAL.DLL file that might help you. Again I have not tried this method just giving suggestions.