Last night WSUS deployed XP Service Pack 3 to the sole remaining computer running XP that I have. This morning, I came down and was greeted with incessant reboots. The computer booted, apologized for not being able to boot properly, asked if I wanted to boot into safe mode, defaulted to normal boot, rebooted, and so on and so on.
It would boot into safe mode fine, so I did that. Not knowing what it was, I ran a disk check, which turned out to be a real mistake. Once I configured the computer to run a disk check at startup it would not even boot into safe mode.
Fortunately, I know Bill Castner, another Microsoft MVP, and he pointed me to a solution. It turns out that this computer is running an OEM OS image from HP. HP, apparently along other OEMs, deploy the same image to Intel-based computers that they do to AMD-based computers. That means they all have the intelppm.sys driver installed and running. That driver provides power management on Intel-based computers. On an AMD-based computer, amdk8.sys provides the same functionality.
Ordinarily, having intelppm.sys running appears to cause no problems. However, on the first reboot after a service pack installation, it causes a big problem. The computer either fails to boot, as in my case, or crashes with a STOP error code of 0x0000007e. It will boot into safe mode because the drivers are disabled there.
To fix the problem, boot into safe mode, or boot to a WinPE disk, or into the recovery console, and disable the intelppm.sys driver. You do not need it on an AMD-based computer anyway. To disable it, take the following steps:
If you booted into the recovery console, from a command prompt, run "disable intelppm"
If you booted into safe mode you can run "sc config intelppm start= disabled"
If you booted into WinPE, you have to manually edit the registry. Do this:
-
Run regedit
-
Click on HKEY_LOCAL_MACHINE
-
From the File menu, select "Load hive"
-
Navigate to %systemdriver%\Windows\System32\Config on the dead system and select the file name System
-
Name it something you can remember, such as "horked"
-
Navigate to horked\ControlSet001\Services\IntelPPM
-
Double click the Start value and set it to 4
-
If you did what I did and completely destroyed things by running a disk check, navigate to ControlSet001\Control\SessionManager. Open the BootExecute value and clear out the autochk entries
-
Repeat steps 6-8 for the other control sets.
-
Reboot
The computer should now reboot just fine.