Windows XP failed to boot: missing or corrupt <windows root>\system32\hal.dll
February 25, 2011 14:00:41 Last update: February 25, 2011 14:03:46
Suddenly my Windows XP failed to boot with this error message on a blank screen:
I took out the hard drive, put it in a USB enclosure and attached it to another PC. Then I ran
In my case I reconstructed the
and changed the attributes back to system/hidden etc:
Note that while other parameters such as
missing or corrupt <windows root>\system32\hal.dll
I took out the hard drive, put it in a USB enclosure and attached it to another PC. Then I ran
CHKDSK and it fixed some file system errors. But I did find that hal.dll was intact, so hal.dll was not missing or corrupt. It turned out that the file that was really missing was C:\boot.ini. It is a hidden file, so you have to use attrib boot.ini to see it. The file is missing if attrib boot.ini returns nothing (run in the root folder C:\).
In my case I reconstructed the
boot.ini file:
[boot loader] timeout=30 default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect
and changed the attributes back to system/hidden etc:
attrib +s +h boot.ini
Note that while other parameters such as
multi, disk, rdisk count from 0, partition counts from 1. Normally the partition number should be 1, but in my case drive C is partition 2 (partition 1 was taken away by system recovery). Please refer to BOOT.INI and ARC Path Naming Conventions and Usage for official explanation of boot.ini.