Background: I'm running Windows XP Pro SP3, my main C drive is a 150 gig WD Raptor, I haven't installed / uninstalled / updated anything to speak of recently that I know of. Can't think of anything else especially relevant, but if anybody's nice enough to try to help and needs more info about my system, let me know.
So when my computer boots, right after POST and before it starts showing any of the Windows startup screens, it gives me an error message telling me that a file called "hal.dll" is missing or corrupt and advises me to repair or replace it.
Exact text:
"Windows could not start because the following file is missing or corrupt:
<Windows root>\system32\hal.dll.
Please re-install a copy of the above file."
The weird thing is that if I have my Windows XP disc in the disc drive (and have my disc drive before my hard drive in my BIOS boot order), it does the disc check, gives me the option of booting from disc, and then boots normally without giving me that error message. So, upshot, I can get into Windows okay ONLY if I have the XP disc in the disc drive while I boot.
I did a Google search and found a page that offers several solutions:
Things I've Already Tried, In Order:
Tried System Restore, which does nothing. No matter how far back I go, it tells me that it cannot restore from the chosen point because no changes have been made to Windows.
Tried booting from the XP disc, going into the Windows Recovery console, and using the "bootcfg /rebuild" command, which is supposed to rebuild the boot.ini file. This did not fix the problem, and instead gives me a menu on booting which asks me if I'd rather boot with "Microsoft Windows XP Professional" or "Windows XP Professional." Whichever one I choose, it gives me the same "hal.dll is missing" error message.
Tried using the "fixboot" command in the Windows Recovery console. Does nothing.
Tried finding "hal.dll" on the Windows XP disc and manually copying it over to the "Windows\system32\" folder. After doing this, my computer began refusing to boot at all, regardless of whether the XP disc was in the drive.
Tried booting from the XP disc and doing a repair installation of Windows (which knocked me back to SP2, if that matters). This took care of the stupid menu thingy from a few steps back, and allows me to boot as long as I have the XP disc in the disc drive, but it still gives me the "hal.dll" error message whenever I try to boot without the XP disc in the drive.
Ran diskchk, which reported that it found some errors and fixed them, but didn't affect the original problem.
Defragged my C:\ drive just for kicks.
The only other thing I can think to do at this point is a total drive wipe and clean reinstall of Windows. Thankfully now that I can get into Windows with the XP disc in the drive again, I can easily make backups of important files, but I'm still considering this as a last resort because I just did this two months ago and REALLY don't feel like taking another two months to get all my programs reinstalled and all my settings back the way I want them.
Edit: Since the problem could possibly be hard-drive-related, I took En Sabah Nur's advice from a while back and installed SmartFan and did a HDD check. Results:
Attribute Current Raw Overall
10 Raw Read Error Rate 200 0 Very good
6 Spin Up Time 168 4633 Good
0 Start/Stop Count 99 1653 Watch
Warning: Start/Stop Count is below the average limits (100-100).
10 Reallocated Sector Count 200 0 Very good
10 Seek Error Rate 200 0 Very good
0 Power On Hours Count 88 8962 Watch
Warning: Power On Hours Count is below the average limits (96-100).
10 Spin Retry Count 100 0 Very good
10 Calibration Retry Count 100 0 Very good
0 Power Cycle Count 99 1647 Watch
Warning: Power Cycle Count is below the average limits (100-100).
10 Reallocated Event Count 200 0 Very good
10 Current Pending Sector 200 0 Very good
10 Offline Uncorrectable Sector Count 200 0 Very good
10 Ultra DMA CRC Error Rate 200 0 Very good
10 Write Error Rate 200 0 Very good
NOTE: not all warnings are reflected on fitness and performance overall values as relevancy is based upon the settings from the hard disk manufacturer who is the best entity deputed to define such relationships.
NOTE : your hard disk Power On Hours Count attribute current value (88) is below the normal range (96 - 100) reported for your specific hard disk model. Basically your hard disk was powered on for more than the maximum time the average user did. This means that either all of the reports collected are from hard disks that were not powered on for too long (this is realistic for recent models) or that your hard disk is becoming old. Usually this is not considered as a pre-failure advisory, but you should check whether you want to replace the hardware or keep an eye on its performances over time.
NOTE : your hard disk Power Cycle Count attribute current value (99) is below the normal range (100 - 100) reported for your specific hard disk model. Basically your hard disk was power cycled more times than the maximum number the average hard disk was. Power cycles put some stress on the hard disk mechanic. Sometimes power cycles can be caused by a loose hard disk power connector. Make sure it is properly fastened.
The overall fitness for this drive is 97%.
The overall performance for this drive is 97%.
I double-checked the power connector, it seems fine.
Am currently running full virus and spy/adware scans of all drives on the system, just in case. Doesn't seem like that could be the issue, but it never hurts to check.
Any advice?