I had a Windows XP machine at home that would restart at random, often overnight when no one was around to see any errors (if there were any). It was becoming quite annoying, although if it hadn’t been for the SessionSaver firefox extension it would have been a lot worse.
These are the steps I took to figure out the problem.
1. Any scheduled tasks?
I looked in the scheduled tasks for anything that might be causing the computer to reboot, but found nothing. I back up the machine every night at 4am, but it wasn’t happening every night, so I didn’t think this was the cause.
2. Check the logs
The logs were not very useful at all. I did see some disk errors though, so eventually I ran chkdsk, but it didn’t find any errors. I also told Windows to halt on an error so I could see any error messages when it rebooted, but that had no affect.
3. Check for bad memory with memtest86
This one was quite simple since I had a liveCD from Ubuntu that has a memtest86 boot option. I just booted it up and ran it for 5 hours and it didn’t find any errors.
4. Upgrade BIOS
This was kind of a pain, mostly because of having to find the BIOS update on the Intel web site, but after the upgrade, the spontaneous reboots continued.
5. Check disk
I had seen some disk errors in the event log so I defragmented and checked the disk for errors using scandisk and chkdsk. It didn’t solve the problem.
6. Check for spyware, adware or a virus
I was hoping this wasn’t the problem, but I couldn’t think of anything else it could be so I ran AdAware and AVG anti virus, but they both found nothing.
7. A hacker?
I didn’t think this was very likely, but I was running out of ideas. I checked the logs on my router and other machines on the network (all running Linux so they had very good logging) but found nothing. I thought someone could be using an exploit on the windows machine, but I have a firewall in place so they would have to be on the network in order to access it. Either that, or they would have to compromise the router and open a port so they could get into the Windows machine. There were no open ports on the firewall though, so that theory was invalidated.
8. Overheating (bad fan?)
I figured this must be the problem, because it would be random, but I couldn’t explain why it seemed to happen overnight and not while it was being used during the day. I didn’t find any good software to gather the temperatures and fan speeds from the motherboard, so I opened up the case and let it run. I checked all of the fans and they were all running at a good clip. However, I heard a strange noise coming from the power supply, which leads me to the final check.
9. Power supply gone bad
It’s always the last thing you check, isn’t it? When the case was open and I was checking the fans, I noticed the power supply making some strange noises. When I put my hand on it to see if it was hot, only moving it slightly, the machine rebooted. I thought maybe it was just a loose connection, so I made sure all of the power connectors were on tight. When I tried powering back on, it rebooted in a few seconds. It’s as if the power supply knew it had been found out and wasn’t trying to hide it anymore. A few more tries at powering on the machine and it didn’t even make it past the Windows boot screen before it powered off.
I ordered a new, dual fan Thermaltake power supply on Amazon and after installing it the computer hasn’t rebooted since.
One other tip for finding out the uptime of your windows machine is to run ‘systeminfo’ at the command prompt. It prints out a bunch of information, one of which is the uptime. That was very useful to tell if the computer rebooted overnight when I hadn’t left any applications open to see if the problem was related to CPU or memory usage. It comes with XP professional but not XP Home edition but I found the binary online and it worked fine.
Footnote: This ask metafilter thread provided some useful insights.