Share via

I'm getting system 32 hal.dll is missing or corrupt. I'm trying to repair windows by using the recovery console but....

Anonymous
2010-05-08T18:24:21+00:00

I'm having a problem with the bootcfg /rebuild command.  I get "failed to successfully scan disk for windows installations  This error may be caused by a corrupt file system which would prevent bootcfg from successfully scanning.  Use chkdsk to detect any disk error.  Note:This operation must complete successfully in order for the rebuild command to be utilized"  I then type in the chkdsk command and scan the disk "successfully"and then try again and I get the same message.  What can I do?

Windows for home | Other | Performance and system failures

Locked Question. This question was migrated from the Microsoft Support Community. You can vote on whether it's helpful, but you can't add comments or replies or follow the question.

0 comments No comments

2 answers

Sort by: Most helpful
  1. Anonymous
    2013-09-18T06:54:53+00:00

    That is really not good advice when you understand how XP works - here's why:

    Generally, replacing the hal.dll with the hal.dl_ from the XP installation CD is not going to be a good idea since:

    1.  Most people do not have a genuine bootable XP installation CD (always ask before suggesting somebody use the XP installation CD they probably don't have to be sure it is the same Service Pack as their installed Service Pack)

    2.  That hal.dll is really only good if you are running XP in a virtual environment like VMWare (unless you want a crippled system)

    3.  That is probably not the real problem.

    Here is more information telling you why these ideas are unlikely to work.

    I wouldn't advise those articles ever and here's why:

    I have never replaced a hal.dll file in my life for this problem, but since it seems so many people are intent of following those kinds of instructions to replace the hal.dll, I will try to explain why it is a bad idea.

    You probably don't want the hal.dl_ file from the XP installation CD and here's why:

    First take a look at the Properties of the hal.dll on your (non virtual machine) working system and look at the "Internal Name" on the Version tab and see what it says.  That will tell you the name of the hal.dll file that XP chose for your system when it was installed (I doubt it is hal.dll).

    Does it say hal.dll?  It probably says something else, so if you took the hal.dl_ from an XP installation disk and expanded it onto your system, you would then have a file called hal.dll, but it would be the wrong hal.dll.

    When you check the Properties/Internal Name of the hal.dll on your XP system, tell us what is says:

    Put your answer here:

    Does it say hal.dll?  Of course not.  That is why you don't want that file.

    When XP gets installed, it selects and expands the proper hal.dll to match your hardware from seven possibilities of compressed hal.dll files on the installation CD:

    Size On XP Disk        Expanded

     53,248 HAL.DL_            105,344  (generic for VMWare)  5.1.2600.5512 (xpsp.080413-2111)

     47,091 HALAACPI.DL_    131,840     (likely for some systems and laptops)

     40,194 HALACPI.DL_     81,152

     51,368 HALAPIC.DL_    150,528

     48,531 HALMACPI.DL_    134,400   (Likely for more robust systems)

     52,563 HALMPS.DL_       152.576  (multiprocessor)

     37,780 HALSP.DL_     77,696

    Each one of those can be expanded into a file called hal.dll file, so if it is your intent to replace your hal.dll, you would have to either figure out or know in advance which one is the right one for your hardware, motherboard and CPU.  If you just picked one at random, you would have a one in seven chance (14%) of getting the correct one.  Maybe you will get lucky.

    If you just expand the hal.dl_ from the XP installation CD, that is the simplest, most generic of all the choices (probably not the right one).

    The hal.dl_ file on the CD is the most boring of them all:

    HAL.DL_

        * Standard PC

    That is a good choice for some virtual machines where there is no real "hardware" (like VMWare), but if you are not running XP in a virtual machine it is the absolute worst choice (sorry Microsoft engaged Support Engineer "experts").

    You system may in fact boot with it (mine wont), but you will be missing a lot of functionality that is built in to the other hal.dll files.

    For example, if I wanted to replace the hal.dll file on one system here, I would need to expand this file:

    HALMACPI.DL_

        * Standard PC

        * Advanced Configuration and Power Interface (ACPI) PC

        * ACPI Multiprocessor

        * MPS Multiprocessor

    If I wanted to replace the hal.dll file on another system here, I would need to expand this file:

    HALAACPI.DL_

        * Standard PC

        * Advanced Configuration and Power Interface (ACPI) PC

        * ACPI Uniprocessor

        * ACPI Multiprocessor

    One of those two are what you will probably find on most modern systems desktops/laptops.

    If you check the Properties, Version, Internal Name of the hal.dll on a working system, you can see which kind of hal.dll file you have and it is probably not going to be just "hal.dll" (check yours and see).  It is either probably halmacpi.dll or halaacpi.dll.

    If you really think expanding the hal.dl_ is the right thing to do, why don't you follow your own advice and go ahead and expand your hal.dl_ file and check the Internal Name and it will be hal.dll.  Then replace your current one with that one, reboot and see how things work  :)

    If the thought is that you need to replace your hal.dll because your system was complaining that the hal.dll file was missing or corrupt, the message is usually misleading and the real problem is usually the file system is corrupted (power failure perhaps) or the boot.ini file is afflicted and the message has nothing to do with the hal.dll file.

    It usually just means that XP can't find the file because the file system is corrupted and you just need to run chkdsk /r from the XP Recovery Console so XP can find the file again.

    I would always start with a chkdsk /r first (it will not hurt to run chkdsk /r even if it finds nothing to do), then take a look at the boot.ini file.

    This is also why when folks trying to help give you instructions to put in your XP CD and expand the hal.dl_ file to replace yours, it is generally weak advice from a well meaning novice.  The hal.dl_ file on the XP installation CD is the least likely to be the right choice of the possible hal.dll files on the CD.

    The second problem with that advice is most people do not have an XP installation CD to begin with.

    That kind of help is usually going to be very wrong - although it sort of makes sense at first and is "logical", but it will never work out favorably and that is generally not the problem anyway.  You can learn about all the different hal.dll files on the XP installation CD and then figure out which one is the right one for your system, but that file is probably not really missing or corrupt.

    2 people found this answer helpful.
    0 comments No comments
  2. Anonymous
    2013-09-18T05:47:40+00:00

    Replace the hal.dll files in your XP computer:

    Fix hal.dll is missing or corrupt in Windows XP

    Here are the steps to replace your hal.dll file:

    1. Insert your Windows XP setup CD
    2. Press any key when you’re prompted to boot from the CD
    3. Press R after the Setup to open the Recovery Console
    4. You may be asked to enter your Administrator Password; do so
    5. When the Command Prompt appears, type the following command, where D: is your CD’s drive letter and C: is your installed Windows drive’s letter:
    6. expand D:\i386\hal.dl_ C:\windows\system32
    7. Remove the CD from CD-ROM
    8. Type exit in Command Prompt to quit it:
    9. exit
    10. Restart your computer
    0 comments No comments