I hope this isn't too wordy. I'm going to be as thorough as possible.
2006 Dell desktop, Windows XP with SP3 and all subsequent MS updates that the system automatically downloads and installs.
System was running normally until about a month ago. It froze, and the only choice was to reboot via the power button. When it tried to boot, it paused and eventually coughed up the infamous "missing or corrupt hal.dll" message. AFAIK, I had made no changes to the system; I think it may have occurred right after the latest round of updates from MS, but I'm not certain.
Ran a couple of different virus scanners, nothing found.
After Googling the error message, I tried everything listed on this page:
1) Just try rebooting again.
2) Verify boot order in BIOS
3) Run System Restore from command prompt. (Not possible; the error does not let me get that far.)
4) Run bootcfg /rebuild from the Repair Console
5) Run fixboot from the Repair Console
6) Run chkdsk /r from the Repair Console (It took a long time, it appeared to stall for a while around 70%, but ultimately it "found and repaired errors," and completed.
7) Expand a clean hal.dll from the CD
8) Perform a "Repair Installation" from CD
9) Perform "Clean" installation.
That final step was the only one that worked. I reinstalled the OS, drivers, SP3, other updates from MS, and some of my software. Everything seemed to be going well. Last night, Firefox froze. Task Manager was unable to terminate it, and after several tries, the entire system froze. The ony option was again the power button, and on reboot, the hal.dll error returned.
I would *like* to be able to fix it without another reinstall.
This time, I have tried a few other steps:
-- I downloaded the SeaTools disk diagnostics. (The hard drives in the Dell are Seagate drives.) Ran the "short" or "quick" test, found no problems.
-- Wanted to try viewing and editing boot.ini manually. From the Rescue Console, ran attrib boot.ini at C:\. Showed r a s h attributes all set. Tried attrib -r -s -h boot.ini (since the Rescue Console attrib command does not include the "archive" parameter). Tried repeatedly, in upper and lower case, and in all cases, it tells me I'm using an invalid paramenter, but I can't tell from attrib /? what I'm doing wrong.
-- Verified that hal.dll is indeed present in system32 folder.
I suspect that "buy a new computer" is the best option, but I'd still like to hear any less drastic suggestions.