How to troubleshoot slow Windows XP boot?

I have a Windows XP x64 SP2 machine that used to boot up really quickly, but now takes a very long time. If I enable the /sos boot switch it gets to the bit where it says:

2 system processors [8191MB memory]

and it sits there for literally about 3-4 minutes before going into GUI mode. Another machine running Windows XP x86 SP3 has a similar issue.

How do I troubleshoot this?

Update:

It boots really quickly in Safe Mode, but not in "Safe Mode with Networking support". I tried the Process Monitor log, but unfortunately it doesn't help. The bulk of the time is between the very first two entries - system starting and smss.exe starting.


Solution 1:

Microsoft's Process Monitor tool allows you to "capture" the boot process in a log file that can be later analyzed to reveal the exact points where your boot process isn't as fast as you want it to be. Then you can remove/play with the problematic processes or pinpoint-search the web for a specific solution.

Solution 2:

If it boots fast in Safe Mode (from F8, as mentioned above) try using Autorun Administrator (another great utility from SysInternals) . It's much better than MSConfig. It lets you save snapshots of your settings changes, do a Diff between them, etc. Much safer to disable stuff with this "undo" sort of capability.

http://technet.microsoft.com/en-us/sysinternals/default.aspx

Solution 3:

Is the booting slow if you hit F8 and choose safe mode? If so, boot into safe mode and run MSCONFIG. Click on the Services Tab and disable everything that is not by Microsoft, and disable everything under the Startup tab. If it still boots quickly, enable a few items under MSCONFIG, reboot, and repeat until you find the culprit.

There are some other useful suggestions in the following articles:

  • Restore Your Computer's Performance with Windows XP
  • Advanced troubleshooting for general startup problems in Windows XP

If you want to dive very deeply into the problem, download Sysinternals Process Monitor (the successor to regmon and filemon). You can enable boot logging, and it will captures a trace of all file and registry activity that takes place during boot. Open up the trace in Process Monitor after it boots and see what exactly is happening during the periods of slow performance. You'll probably find that it is an out of date driver or antivirus program that is causing problems, and updating to the latest version will fix things for you.

Solution 4:

If you can't find the answer through exploring the host directly, try using a packet sniffer (wireshark, for example) to see what the client is trying to do over the wire.

Often systems will slow down massively if they're trying to resolve a hostname and struggle to find the DNS server or the host itself. It'll sit there until each attempt to make contact times out. This can be a few minutes per attempt! In unix systems, DNS & NFS are two common culprits to slow booting. Find & fix the network problem and everything speeds up.