Apr 20, 2008
Tip and Trick Editorial

Windows Vista Fails to Boot After Installing SP1 with ntoskrnl.exe 0xc0000098 Error

After installing Windows Vista Service Pack 1 (SP1) via Windows Update, where the progress status has already showed 100% completion status, and presumably should be a successful install, the system fails to boot up again with the one of the following error messages during the very initial stage of computer starts up.

ntoskrnl.exe
Status: 0xc0000098
Info: Windows failed to load because a required file is missing or corrupt.

The error message halts and stops the normal boot up process of Windows Vista with SP1, and recommends that users to boot from the original Vista installation DVD disk to repair the corrupted files. However, when attempting to use Windows Vista setup DVD to boot into recovery console to repair the Windows, it returns result that it can’t repair the problem, and prompt if users want to send the information to Microsoft.

Beside, from the Repair Disk’s Recovery Console, although there is an option to rollback Windows Vista with System Restore to pre-SP1 restore point, however, System Restore will say there is no valid System Restore points, although when installation of Windows Vista SP1 starts, it’s creating a restore point. Any attempt to repair or recover Windows Vista with repair disk, including running “chkdsk /f” fails too.

To recover Windows Vista corruption so that system can boots up again, here’s suggestion of resolution to fix the issue as posted by DiGiTaLLiCa in TechNet forum.

  1. Go to BIOS and configure the first priority boot device to DVD optical drive, then save the CMOS.
  2. Insert the Vista installation DVD. Windows Anytime Upgrade DVD can be used too.
  3. Power on the computer. In most PC, a message will appear to ask user to press any key to boot from DVD. In this case, press any key to boot from the Windows Vista installation DVD.
  4. Once the Windows Vista installation DVD boot completes, you’re asked to specify Language to install, Time and currency format and Keyboard or input method. Choose the the appropriate options and click Next button.
  5. Click on Repair your computer. The other option, “Install Now”, will fresh install Windows Vista.
  6. Choose the Windows installation that having problem. Usually there is only one instance of Windows Vista. If so, simply click Next button.
  7. If you are offered any automatic repair options, cancel all of them until coming to System Recovery Options screen that offers several choices beginning with “Startup Repair” and ending with “Command Prompt”.
  8. Click on Command Prompt to open a command prompt window. The command prompt shell should show folder location as X:\Source, where X drive is the source installation files on Windows Vista DVD.
  9. Backup the following files:

    In “\Windows\System32\” folder:
    hal.dll
    halacpi.dll
    halmacpi.dll
    ntoskrnl.exe (Although error message identify this file, but it’s not really the culprit. So skip this on first try)
    ntkrnlpa.exe (Same as ntoskrnl.exe. Try booting without replacing them first)

    In “\Windows\System32\Drivers” folder:

    acpi.sys
    msisadrv.sys
    pci.sys
    volmgr.sys
    volsnap.sys
    disk.sys

  10. Then copy the exact same files from within X:\ folder to replace above files with copy command. For example,

    copy X:\Windows\System32\Drivers\acpi.sys C:\Windows\System32\Drivers\acpi.sys

    Replace C with the drive letter that represents your Windows Vista system drive.

    The hal.dll file won’t be found on Windows Vista DVD, but it’s the first file Windows Loader tries to load at boot so if it’s corrupted, Windows Vista will still not booting up. Users can try to copy the hal.dll file from another system of Windows Vista RTM version, or try to retrieve and restore a backup copy of hal.dll from C:\Windows\winsxs\ folder, where Windows Vista backups basically every version of all system files there.

    However, in the “winsxs” folder, the hal.dll will still not appearing. Basically, there are 3 files related here: hal.dll, halacpi.dll, and halmacpi.dll. hal.dll will always has the same filesize as one of another two files. That’s because it’s exactly the same file that is just copied and renamed. The rule is that, if the computer is a multi-core PC, halmacpi.dll will be used and duplicated to hal.dll. Else, for single core PC, halacpi.dll will be used as hal.dll instead.

    Thus, depending on the number of CPU core of your processor, copy the corresponding file (halacpi.dll or halmacpi.dll) from C:\Windows\winsxs\x86_hal.inf_31bf3856ad364e35_6.0.6000.20500_none_xxxxxxxxxxxxxxxx\ folder to C:\Windows\System32\ folder, and rename it to hal.dll. Then, copy and replace both halacpi.dll and halmacpi.dll to replace the copies inside \Windows\System32 folder. Note that for hal.dll, halacpi.dll, and halmacpi.dll, copy from Windows system drive on your local hard disk, and not from the DVD.

    Make sure that the folder name is correct (there are plenty else starts with x86_half.inf.resources) and the version number in the folder name is not 6.0.6001.18000 because that’s SP1 version that causes the problems.

  11. Type Exit to close the command window.
  12. Restart the computer.
  13. Windows Vista computer should be able to boot up properly now. Windows will try to remove all files related to service pack, but probably won’t be a clean uninstallation of SP1. Users should try to reinstall Windows Vista Service Pack 1 with Windows Vista SP1 standalone update package to avoid leaving the system in hybrid state between RTM (no SP) and SP1, but do not use Windows Update to perform the upgrade again.

    When you reinstall SP1, Stage 3 is going to be repeated twice, once before Stage 1 and then again after Stage 2, which should be a normal symptom after recovery from 0xc0000098 on ntoskrnl.exe error.

Pin It on Pinterest

Share This

Share This

Share this post with your friends!