Monday, October 20, 2008

minimum RAM requirements

system slow to respond? slow to start up?

check these minimum and recommended quantities of RAM :

windows XP : minimum 1GB, recommended 2GB
windows vista : minimum 2GB, recommended 3-4GB

when windows runs out of RAM, it uses virtual memory, which is space on the hard disk which can be used as spare RAM. the difference in speed between real RAM and virtual is a factor of billions. also, when virtual memory is being used it means constant hard disk activity which further slows any reading or writing of files.

windows will generally use virtual memory to some small extent no matter how much RAM you have, but will use it fairly constantly if less than about 200mb of RAM is available. RAM is a cheap upgrade to solve major slowdown problems!

random restarts due to failing PSU

got a system on the bench at the moment which randomly reboots. symptomatic of CPU overheating, but the sensor readings suggest it's fine

replaced the PSU and it's solid and stable

random BSOD, display reverts to 800x600

had a system in which was experiencing random BSODs, mainly during gaming, as well as sometimes the display reverting to very low resolution modes.

i checked the system logs and the wide variety of STOP codes suggested none of them were individually worth pursuing, and that there was likely a hardware (memory) problem.

i ran some memory tests for a few hours and they came up clean, but then some internet research found an interesting quote from the MSI website (it was an MSI motherboard) that said that the default memory timings might be too aggressive and could result in an unstable system. they actually expect you to manually underclock the RAM just to get a working system!

i found this a little odd, so went to investigate the DRAM settings in the BIOS, and that's when i noticed the default clock speed for the RAM was 200mhz, the correct setting for DDR400 RAM, but the machine was only fitted with DDR333. the correct clock speed for this is 167mhz. so i adjusted the setting, and the BSODs were gone.

there still remained a problem with the displays reverting to extremely low resolutions. this was caused by a lack of power - there was only a 450w PSU powering a dual-core 64-bit processor, 2gb of RAM, several optical and hard drives, and 2 nvidia graphics cards in SLI configuration.

the problem with the displays going bad was interesting, but then i noticed that there was only a 450w power supply, powering a 64-bit dual core system with 2gb ram, several drives, and 2 nvidia graphics cards in SLI configuration. upgrading this to a 750w corsair PSU solved that problem.

Thursday, August 14, 2008

Problems with windows updates? System takes forever to shut down?

Most problems with windows updates can be fixed by one of the two following methods :



If none of your updates are installing (they all say installation failed), it's possible the windows update files have become corrupted.
Stop the windows update service - right click "my computer", click "manage" then navigate to : services and applications > services

find the automatic updates service and stop it (right click > stop)

then delete the folder c:\windows\softwaredistribution (or replace c:\windows with wherever your windows installation is), this contains all the windows update files. don't worry, the folder will be automatically recreated when windows update is next run.

start the automatic updates service again and run windows update once more. updates should be re-downloaded and should install fine.




If windows update itself fails with an error code, there are a number of causes for this. In fact at one point, installing SP3 caused this very problem!

Here's the fix.
at the run prompt, type exactly as written :
notepad c:\fix_wu.cmd

notepad will open and prompt you to create a new file, choose YES.
Note : we have to open notepad this way because we need a file with .cmd extension, any other method will always add the .txt extension.

then, inside notepad, paste the following code :

net stop wuauserv
regsvr32 /s wuapi.dll
regsvr32 /s wups.dll
regsvr32 /s wups2.dll
regsvr32 /s wuaueng.dll
regsvr32 /s wuaueng1.dll
regsvr32 /s wucltui.dll
regsvr32 /s wuweb.dll
regsvr32 /s jscript.dll
regsvr32 /s atl.dll
regsvr32 /s softpub.dll
regsvr32 /s msxml3.dll
net start wuauserv

save (NOT save as !) the file

then go to run and type "c:\fix_wu.cmd", windows will run the script and window updates should be fixed - revisit the windows update site to confirm.

Another symptom caused by this is difficulty with shutting down a system, where it would take a very long time to shut down, even on a relatively clean machine. Even manually closing processes in the task manager doesn't seem to hurry up the process, which could take well over 5 minutes. And if you don't ever visit the windows update site, you may be completely unaware of a problem with windows updates, or you may be aware of the problem but not realize that it has any connection with the slow shutdowns whatsoever.

The only information that can be found is in error message in the event viewer : "The server {9B1F122C-2982-4E91-AA8B-E071D54F2A4D} did not register with DCOM within the required timeout.", which annoyingly, doesn't really tell us anything.

However, all of these things are related, and the above (second) fix for windows updates does in fact solve the problem.

"system32" window opens on startup

simple one this. open msconfig, check the startup list, and remove any blank entries.

Restore damaged CD/DVD drives

A fairly common problem I've witnessed is that of CD and DVD drives "disappearing" from the system. Opening the device manager shows them to be present, but with the yellow exclamation symbol indicating a problem. Attempting to uninstall or reinstall the devices doesn't solve anything.

Here's the fix, it's a registry hack :

Navigate to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class
Find the key {4D36E965-E325-11CE-BFC1-08002BE10318}
then delete all VALUE data from UpperFilters and LowerFilters
Note DO NOT delete the key or the strings! only delete the VALUE data!
Exit and reboot. Problem solved.

Usual disclaimer : don't go poking around the registry if you don't know what you're doing. If you bork your system, it's your fault and nobody else.

disabling automatic restart on system failure from the registry

If for some reason you are completely unable to disable "automatic restart on system failure" on a system which will not boot, there is another way. It's possible to disable this from the registry, which can be edited offline with the appropriate tools, for example from a system recovery boot disc.

Open regedit and navigate to :

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Crashcontrol
(note this key, specifically "currentcontrolset" may not appear depending on circumstances)

and any/all of

HKEY_LOCAL_MACHINE\System\ControlSet001\Control\Crashcontrol
HKEY_LOCAL_MACHINE\System\ControlSet002\Control\Crashcontrol
HKEY_LOCAL_MACHINE\System\ControlSet003\Control\Crashcontrol
etc...

under each one, change the value for "autoreboot" to zero.

the usual registry disclaimer applies, if you mess around with stuff you don't understand you can and probably will trash your system...!

which services are hiding inside svchost.exe ?

if you're like me, you probably spend far too much time inside the task manager, trying to identify which applications are hogging too many resources, and what bottlenecks might be present in the system.

it's not too uncommon to see one of the many svchost.exe processes using lots of resources, but it's not easy to identify what's causing the problem here.

for those who don't know, svchost.exe is simply a process wrapper for windows services. each svchost.exe "contains" a bunch of windows services. so when one of these is maxing out the CPU or using far too much RAM, it can be useful to know which services are relevant - then you can begin stopping or restarting them to see which one is causing the problem.

there's two methods for identifying what services are hiding within each svchost.exe

the first one uses the "tasklist" command-line application.

note : tasklist is only included in XP professional, however it can easily be downloaded for use on XP home. there's many links to be found on google, here's one : http://www.computerhope.com/download/winxp/tasklist.exe

firstly however, we need to make sure we can see the process ID for each process in the task manager. in the task manager, go to the view menu and click "select columns". in the dialog that pops up, make sure "PID (process identifier)" is enabled, and click OK. then sort the process list alphabetically by clicking on the "image name" heading, this way all the svchost.exe processes are grouped together. check which one is causing the problem and make a note of it's PID.

at the command prompt, type exactly as written (including quotes) :

tasklist /svc /fi "imagename eq svchost.exe"

this will list all of the svchost processes with their relevant process ID and what services each one contains. find the one with the PID that matches the one you made a note of earlier - and check the services listed under that one.

the other (and possibly much simpler) solution is to use process explorer from system internals (recently acquired by microsoft), you can download this from http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx

it's an alternative to the task manager, and a big improvement too. it shows what services are active inside each svchost.exe, so while it won't list all the services contained within each one, you would expect the one causing a problem to be listed as it would be active.

Disabling reboot after automatic updates

Personally i hate it when windows forces the issue that a reboot is required after an update has been installed. Sure, if a reboot is needed I'm happy to oblige, but in my own time. If I'm busy working on a system, or it's downloading a large file for me, I don't want windows popping up a dialog box every 10 minutes reminding me to restart, or worse, deciding to restart for me if I've left the computer downloading stuff.

Thankfully, there is a way to fix this. After searching online, I found several solutions, however they all seem to apply only to XP Professional. Here's two methods that work for XP Pro :

One option is by making changes to group policy. At the run prompt type gpedit.msc and then navigate to : local computer policy > computer configuration > administrative templates > windows components > windows update. There's two settings you can change here - either enable "no auto-restart for scheduled automatic updates installations" or adjust the setting for "Re-prompt for restart with scheduled installations" and make the delay much much longer (the default is every 10 minutes - I've set mine to once a day).
(thanks to http://www.codinghorror.com for this tip)

The other choice is a registry edit. open regedit and navigate to HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU
Then add a DWORD value "NoAutoRebootWithLoggedOnUsers" and set the value to 1 to enable it.
(from http://support.microsoft.com/kb/328010)

But if you're on XP home (as my laptop is) then neither of these choices work. Thankfully, there's a registry hack similar to the one from the microsoft KB article which works just fine :

Open regedit and navigate to HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\

Then add a DWORD value "NoAutoRebootWithLoggedOnUsers" and set the value to 1 to enable it.

As usual, any registry editing is done at your own risk, and if you trash your OS it's your own fault. If you're not sure, don't do it.

Tuesday, August 12, 2008

Missing desktop and screensaver tabs from display settings

after a virus attack, the display settings on this dell notebook were missing the desktop and screensaver tabs.

they can be restored with a small registry fix, thus :

open regedit and navigate to HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System

delete the following keys if they are present:
NoDispBackgroundPage
NoDispScrSavPage

the usual registry editing caveats apply, in other words, if you're not sure then don't do it

Monday, July 14, 2008

WinXP : stop 0x0000000a during safe mode startup

Got an old XP home box in today that wouldn't boot. Regular windows boot just hangs halfway through loading, and safe mode produces a BSOD with STOP code 0x0000000a.

this code normally points to bad drivers or to faulty RAM. with it happening during safe mode, we can happily rule out most cases of bad drivers. so i ran memtest86 for a couple of hours and it didn't produce any errors. normally I'd run memtest for at least 12 hours before accepting a "pass" result, but given that the symptoms are showing so quickly (during bootup) i figured a couple of hours should be enough.

to be sure, i then swapped the RAM out for some sticks i've got lying around, and it still would not boot, and still produced the same BSOD.

the next task was to start eliminating pieces of hardware, and during this process i discovered that pulling the power to the two CD drives enabled the system to boot. however there was clearly not a hardware fault with the drives themselves, as having either one of them powered up prevented the system from booting.

so, with the 2 drives disabled, i booted the system, and saw that the most recent software that was installed was an old version of roxio easy cd creator. so i uninstalled this, and ran the registry patch available from http://www.aumha.org which forces windows to re-install the cd drives upon next reboot. sure enough, with the drives re-connected, windows booted successfully.

conclusion : the roxio software had installed a driver for the CD drives (most likely for UDF support) which was faulty or incompatible with the system. as windows will always load the drivers for CD drives even in safe mode, there was no way to uninstall the driver or roll back the system without first disconnecting the drives.

New blog

So I've decided to start a blog. I'll be posting various HOWTOs on PC repair, as much for my own benefit (i can't remember everything!) as anyone elses. Each time i encounter a new or interesting problem, i'll post the solution here. Hopefully over time this will become a useful repository of information.