Yesterday I learned some interesting facts about hal.dll, as well as a few other related items.
The first thing I learned is that when you fix things that aren’t really broken take care of some long over-due partition realignment on your hard drives (yeah… that’s the story), one problem that you might have is that your computer then loses its mind and will refuse to boot. Insane computers, as any follower of sci-fi could tell you, are not a good thing.
But that’s why we do backups, right? And, yes grasshopper, I did do backups before starting down this path. I had brand new, shiny backups of all three logical drives on physical hard drive #1 (c:, d:, and e:). And I had a whole physical drive (#2), originally set up to dual-boot, no longer being used for anything. All I wanted to do was remove everything from no-longer-used hard drive #2, freeing up a bunch of space to move e: into, and thus freeing up more space for d: on physical drive #1. So I had backups, and I had tools (Partition Magic, which has worked well for me in the past).
Happily whistling We’re Off To See The Wizard, I started down the yellow brick road. I’ve done this sort of thing before. Lots of times. I have backups. It’s not that scary. Not as scary, say, as cutting a steek.
And, speaking of knitting, as you follow along the yellow brick road with me you might realize that there are actually several long periods of technical inactivity on my part whilst the computer “did it’s thing,” and that left quite a bit of down time (pun unintended) for knitting. The socks are ready to have their little heels turned. And if they still fit afterwards, I’ll post a pic.
Now, disclaimer: Don’t try this at home, kids, unless you are prepared to face the consequences.
I set up a bunch of disk changes in Partition Magic and pressed the “submit” button. A nice message told me my computer would reboot. “OK” I said, still whistling. The computer rebooted.
Windows could not start because the file [windows root] \Windows\System32\hal.dll is missing or corrupt.
er…. what? [whistling stops] Let’s try rebooting.
Windows could not start because the file [windows root] \Windows\System32\hal.dll is missing or corrupt.
How dare my files become corrupted! Wasn’t HAL that bad computer in 2001 A Space Odyssey? But we have backups! Let’s try restoring just that one, single file.
Windows could not start because the file [windows root] \Windows\System32\hal.dll is missing or corrupt.
All right… let’s restore the whole c: drive.
Windows could not start because the file [windows root] \Windows\System32\hal.dll is missing or corrupt.
All right… let’s reformat and repartition the @%#$ physical drive #1, and then restore the c: drive.
Windows could not start because the file [windows root] \Windows\System32\hal.dll is missing or corrupt.
OK… let’s copy hal.dll from #1 Son’s computer and put it on my computer. Maybe that file did get messed up somewhere along the line. We’ll try that. Maybe I should have tried that first.
Windows could not start because the file [windows root] \Windows\System32\hal.dll is missing or corrupt.
Well… what the $#@% is this hal.dll thingy, anyway? After futzing around for 4 or 5 hours I decided it might be interesting to find out. It turns out that hal stands for “hardware abstraction layer.” It’s a widget that helps the operating system talk to the hardware. And what do you think can cause the error that by now I’d grown so fond of?
There’s also a little file that sits in the Windows root folder called “boot.ini.” It’s a small file, but important. It has two little pieces of information in it: the first tells which is the default operating system, and the second tells where all of the operating systems are. If for some reason the default operating system doesn’t actual point to a partition where an actual operating system resides, the error message returned is [drum roll please]:
Windows could not start because the file [windows root] \Windows\System32\hal.dll is missing or corrupt.
Remember how I moved stuff around? Remember how I removed the dual-boot that I’d used previously? And so, boys and girls, the moral of our little tale is: when you get that error message, all you need to do is fix the boot.ini file.
Now, the WinXP repair console (as it’s aptly named) doesn’t let you actually edit the boot.ini file. But it does provide a couple of utilities (like FIXBOOT and BOOTCFG) that will at least make the default OS point to one that is actually there. While not actually fixing the whole boot.ini debacle, that will at least allow the computer to regain some of its senses and bring up its normal WinXP desktop, where boot.ini can be edited in peace via Notepad. (Please don’t do this unless you have a good idea of what you’re doing!)
Not all senses were regained all at once, of course. Psychoanalysis in the form of a couple more drives (d: and e: if you’re keeping score) to be restored from backup, and a few more little glitches, and we’re almost back to what passes for normal in the land of PI household techiness. A few tiny weirdnesses remain, but that’s what keeps life interesting, eh?
And I have a whole lot more disk real-estate that can be filled up with… something.
And I got a lot of knitting done!
But I guess it’s indicative of something that when #1 Son came home at 1:30 AM and found his mom knitting in front of a blank computer screen while mumbling curses, he didn’t even ask…
« Hide It
I tried the bootcfg /rebuild and I tried the fixboot and I still cannot log into Windows Server 2003. Doing a Windows Repair from CD fixed the problem long enough to boot into Windows and be able to work…but as soon as I restart it again, the same error comes up. Then I have to re-install all updates, which it will not let me do, and Microsoft says I have to boot into safe mode…well guess what, when I reboot, of course the error comes back.
Any ideas?
1Remark from Mr. Rob — Tuesday, 2/7/2006 @ 4:37 PM
Not really, I’m afraid. 🙁
I was working with Win XP, not Win Server. Assuming, though, that they’re pretty much the same in the way they work with boot.ini, once you got to the desktop, did you take a look at boot.ini to see what was really wrong with it? I had to make some changes in mine to really “fix” it. (Note: Back it up, first in a place that’s accessible from the repair console!)
If boot.ini looks OK, another possibility is a failing hard drive. I’ve had very weird things happen when a drive is about to go.
2Remark from Judy — Tuesday, 2/7/2006 @ 6:36 PM