How To Fix Hal.dll Errors in Windows 7, 8, & Vista
Restart your computer. While not very likely, the hal.dll error could be caused by a temporary problem that a reboot might take care of. It's worth a try.
Check the boot sequence in BIOS. If the BIOS is configured so the boot order first lists a hard drive other than the one with your usually-used copy of Windows installed on it, that might be the problem.
Note: If you've recently installed an internal hard drive, plugged in an external hard drive, made changes in BIOS, or flashed your BIOS, be sure you give proper weight to this possibility!
Perform a Startup Repair. The Startup Repair process in Windows 7 and Vista is an automated Windows startup fix-it tool and will often fix hal.dll issues caused by corruption of the hal.dll file itself.
Update the volume boot code to use BOOTMGR. If the volume boot code has corrupted or is configured for a boot manager other than BOOTMGR then you might see a hal.dll is missing error.
Note: An issue with the volume boot code is the most common cause of hal.dll errors in Windows 7, 8, or Vista. The reason I list it as the fourth troubleshooting step is because the first three are so simple to try. However, if you're comfortable working with advanced tools in Windows, feel free to give this one a shot first.
Test your hard drive. It's possible at this point that the problem could be hardware related.
Replace the hard drive if the test you run on your hard drive fails and then install Windows 8, 7, or Vista again on the new drive.
Complete a clean install of Windows. This kind of Windows install method completely erases everything on your hard drive and installs a new copy of Windows.
Important: A clean install will fix any software-based (corruption, etc.) cause of any hal.dll error you're seeing, but it's something you should only do if you're sure your hard drive is physically working properly and you've tried all other software troubleshooting.