Thursday, September 26, 2013

Windows XP hangs on startup

One of several things I'm working on at the moment is migrating people from Windows XP to Windows 7. There's various ways to go about this but we are in the main provisioning new PCs and manually bringing the data over - I'd rather not use Microsoft's tool to bring settings as we often take this sort of equipment change as an opportunity for a bit of a fresh start, with bookmarks and documents being re-imported later.

One particular PC (Dell Latitude E6420, BIOS A08) decided on the very morning it was to be replaced to stop booting, even in Safe Mode/Command Prompt. Diagnostics and a chkdsk /R found nothing. There were longer than usual delays to bring up an F12 (choose boot device) menu.

We had a backup of the data on it but it wasn't fresh because the user had been away from the office for a time. It seemed to me to be worth having a go at to get a better copy.

Booting to XP Recovery Console to try and knock out some services or drivers was abandoned because the CD hung at "Setup Is Starting Windows". My luck being what it was, none of my bootable media for DOS with HIMEM.SYS enabled were working so I could upgrade the BIOS. Here's what I did based on a survey of similar issues on the internet:

  1. Removed the hard drive
  2. Switched the disk mode from ATA to AHCI and installed Windows 7 on another drive (no problem there) and at the first opportunity upgraded the BIOS to A19 (step 1/2 not needed presumably if my usual boot media had allowed me to do the upgrade)
  3. Reinstalled the XP hard drive, restored ATA disk mode (the XP image wasn't built with the Intel AHCI driver)
  4. In BIOS - disabled USB, NIC eSATA, free fall accelerometer and so on
  5. At this point I was able to get the full F8 menu in Windows XP which I had not previously (just the "Windows did not start normally" basic options of Safe Mode, Last Known Config etc.) Again on the premises that a device driver might be at issue, I booted in VGA mode to bypass the display driver.

The laptop booted to Windows XP and permitted a logon. This left me with a bit of a quandary - I had disabled the NIC along with the other stuff. I opted to remove the data with a USB stick instead of chancing a reboot.

It would be nice to know what broke here but given that the machine is being deprecated anyway I don't have the time to invest. Hopefully someone will get some ideas for a similar future issue from the above.

Friday, June 07, 2013

"STOP: c000021a {Fatal System Error} ... status of 0xc0000135"

Have been struggling this morning with a Windows XP PC which was in a reboot cycle displaying the following error:
STOP: c000021a {Fatal System Error}
The Windows Logon Process system process terminated unexpectedly with a status of 0xc0000135 (0x00000000 0x00000000).
The system has been shut down.
God there's a load of crap on the internet - including in the Knowledge Base. "Do a chkdsk. Check the memory" which is all fine and well but it doesn't analyse the problem the computer is actually reporting (although Microsoft take 90% of the blame here for not properly publishing error codes.  More posts, including Microsoft, said "do a repair install" but that would have broken stuff I didn't want to break, and doing a re-image would have been inconvenient. Better to see if it could be fixed.

Most STOP 21A errors point to issues in winlogon.exe and csrss.exe but the "status of 0xC0000135" was an important differentiator between those and this, and it wasn't until I unearthed this blog, this forum post and a post by "Richard" on this forum page which led me to this crusty old NT4 Knowledge Base article that the solution emerged. A DLL file was missing from c:\windows\system32. But which one? And how to bring it in while causing minimum impact?

First I went to a working computer and copied all DLLs in \system32 to a folder on a USB key. Then I booted a Windows 7 install CD and went into the repair console. Why? Because the WinXP console is very limited, being unable to run offline system file checking or XCOPY. Then I did an XCOPY from the USB stick to c:\windows\system32, answering no to overwrite existing files. A bunch of stuff came in, mostly linked a scanner which wouldn't have been common to both, but some graphics dlls came in too.

We're migrating to Windows 7 so hopefully this isn't one I'll have to deal with again but am publishing it here in case some other poor soul comes across it.