Windows Voodoo

Introduction

Does your computer ever do any of the following, "just for the heck of it," with no rhyme or reason? Does it do it a lot? More than once or twice a day?

  • Lock up, freeze or otherwise crash unpredictably
  • Lock up, freeze or otherwise crash predictably
  • Often have Application Errors, Segmentation Faults (used to be GPFs -- General Protection Faults).
  • "Thrash" the hard drive -- that is, have a lot of hard drive activity (and sometimes even noise) with little result, or when you are not actually doing anything? (This can also mean you need more physical memory or RAM.)

If so, this page may be able to help. It is intended for novice users, so hopefully everything will be clear. Let me know if it's not.

This page is mostly oriented towards the Win9x code-base, which includes Windows 95, 98 and ME. Some of the material is applicable to Windows NT/2000/XP (such as clearing the temp directory) and some is not. This is indicated in square brackets after each step.


Disclaimer

Some of the methods and techniques I talk about can be dangerous to your data! Use this page at your own risk.

Make backups of your important data. I strongly recommend purchasing and using a modern tape drive. They cost between $100 to $500 for typical retail/consumer oriented units. Some of them even plug right into your printer port, so you don't even have to open up the computer to install it, and they may be used on more than one computer. Another solution is a CD Burner. They will not be able to back up the entire system, but your data files will easily fit onto a CD-Rewritable or CD-R disk.

Consumer Tape Units

To be added.

CD Burners

To be added.


Hardware Upgrade/Restore Voodoo

Thanks to Leo for this great info.

Ever try to upgrade hardware on a Windows 2000 or XP system, especially the motherboard or hard drive controller? Bet you regretted it, didn't you? Well, here are some MS TechNet articles that might help. Read the disclaimer!


Winsock Issues

The Windows TCP/IP networking stack is not the most stable thing in the world. In particular, there is a ability for third-party applications to tie themselves into the stack for various reasons. The advisability of allowing this is questionable at best, but there it is. One of the possible results of this "feature" is that Windows networking can sometimes simply die. Often there is no remedy but reinstalling the entire system from scratch.

However, since this is a known issue and such a giant pain there are a couple of tools available to try and help. In particular, LSP-Fix "is a free utility to repair [problems in] Layered Service Provider or LSP, a piece of software that can be inserted into the Windows TCP/IP handler like a link in a chain. However, due to bugs in the LSP software or deletion of the software, this chain can get broken, rendering the user unable to access the Internet."


Crapware & system slowdown or instability

There are programs out there that spy on you (spyware), monitor keystrokes, bother you with advertisements (adware) and all kinds of other things. They are often collectively known as "crapware" and they are BAD. Many add-on tool or search bars for IE are crapware! Many of the symptoms above can be cause by crapware, so it's definitely worth it to look into. I recommend reading the following links, then installing and using the free Ad-aware and Spybot programs.

The Voodoo

I call these techniques "voodoo" because it is often not clear that they a) should work or b) why they work. They just do. This page is mostly oriented towards the Win9x code-base, which includes Windows 95, 98 and ME. Some of the material is applicable to Windows NT/2000/XP (such as clearing the temp directory) and some is not. This is indicated in square brackets after each step.

I've created a bootdisk that will automate some of these steps for you, if you are using Win9x/ME. See the Boot Disk section below.

  1. Shutdown your computer. Turn it off, and unplug the AC cord. Try to turn it on and off again a few time (this clears gremlins out of components that normally get power even when the PC is "off"). [All]
  2. Boot into "DOS" mode. [Win9x/ME]
  3. Clean out the "Temp" directory. [All]
  4. Run ScanDisk and/or Chkdsk (technically, ScanDisk is preferable, but I've had some luck with ChkDsk where ScanDisk failed). [All]
  5. Reboot into GUI (Graphical User Interface) mode. [All]
  6. Defrag your hard drive. [All but NT]
  7. Get rid of unnecessary "services" and background programs. [All]
  8. Reboot and test to make sure everything works. [All]

Finally, the worst case is that you have to back up your data, reformat your hard drive, and start over.

Boot into DOS Mode

Skip this step if you are using my boot disk.

This applies to Win9x/ME only. In NT, you can't really do this at all, especially if you are using NTFS (which you should be). (Technically, that's not true -- there are ways. But they are far too complicated for this page.) Win2K has something similar, but you probably don't need or want to mess with it.

  1. Shutdown your computer. Turn it off, and unplug the AC cord. Try to turn it on and off again a few time (this clears gremlins out of components that normally get power even when the PC is "off").
  2. Wait about 5 minutes for it to really drain. Better yet, go to lunch, or bed or go watch TV for awhile, or whatever.
  3. Plug the AC cord back in and power up.
  4. Watch for the screen to say "Starting Windows 9x."
  5. Hit the F8 button -- quick -- you have about 2 seconds. You should get a menu.
  6. Choose "Safe Mode - Command Prompt only".
  7. Continue on below and clean out your TEMP directory.

If you don't get the "Starting Windows 9x." or the menu, there are a couple of reasons why that could be. Lots of computers have annoying manufacturer logos that cover this stuff. Try hitting the ESC key when the logo comes up. Other "F" keys sometimes work too.

You can also going to Start, Shutdown, "Restart in MS-DOS Mode," which will do pretty much the same thing. You type "exit" to end MS-DOS mode and return to windows.

If you get the "Starting Windows 9x." but pressing "F" keys does not work, your c:\MS-DOS.sys file probably has BootKeys=0, BootMulti=0 or something else screwy. Try rebooting and holding down one of the CTRL keys. If that doesn't work you have to edit c:\MS-DOS.sys, which is a bit of a pain to correct that. See MS Technet "Contents of the Windows Msdos.sys File [Q118579]" for details and instructions on how to fix it.

Clean out the "Temp" directory

Read the disclaimer!

Skip this step if you are using my boot disk. Also, see my Sweepup.bat script.

The "temp" directory is used to temporary files. Just about every program uses temp files for something. The operating system uses then, your applications like Word or Excel use them, and utilities use them. What is supposed to happen is that when the program either shuts down, or no longer needs the temp file -- it is deleted. In practice this does not always work. So over time you can build up amazing numbers of junk temp files. I've seen computers with temp files dating back two and three years, wasting hundreds of megs of disk space.

Of course, you can't just randomly delete everything in the temp directory. No. That would be too easy! The problem is that some of the stuff in there might actually be in use and if you delete it, something will break. Usually the system will not let you delete something that is in use, but you can't depend on that. There are two ways around this. The first and best is to boot to DOS, which guarantees that nothing is currently in use, then clear it. The second way is to reboot, and clean out the temp directory before anything has a chance to get started. The problem with that is that many people have all kinds of stuff running in the background on startup, and those programs may open temp files right away (see unnecessary services).

  1. Boot to "DOS"
  2. Find the TEMP directory. Usually c:\windows\temp (Win9x) or c:\temp (NT).
  3. Try to delete the TEMP directory with "deltree c:\windows\temp" for Win9x or "deltree c:\temp" for NT. If it says "bad command or filename" you do not have deltree in your path. Try c:\windows\command\deltree. If that still does not work, cd into the TEMP directory and type "del *.*". In any case, when asked if you really want to delete everything, make sure you are in the correct place, and that it says to delete the correct things, and say "yes."
  4. If deltree worked, you must re-create the temp directory. Type "md c:\windows\temp" or "md c:temp" as needed.
  5. While you're at it, run ScanDisk (see below).

Run ScanDisk and/or Chkdsk

Do this after using the boot disk.

ScanDisk and Chkdsk (Check Disk) perform more or less the same function. The difference is that Chkdsk is the old, DOS, command line tool, which does not really know about long file names. ScanDisk is the more modern graphical tool that can deal with a few more problems than Chkdsk. There is also command line (non GUI) version of ScanDisk.

Non-GUI

  1. Boot to "DOS".
  2. Type "scandisk" and let it run.
  3. Reboot when finished.

GUI

  1. Double-Click on "My Computer".
  2. Right-Click on the C: drive.
  3. Choose "Properties".
  4. Find the "Tools" tab and choose it.
  5. Click on the "Check Now" button.

Run Defrag (Win9x or Win2k only)

Read the disclaimer! If the power goes out while defrag is running, you can lose your data!

Do this after using the boot disk.

NT does not come with a defragger, so you are out of luck. Win9x and Win2k do have them. You want to run it from the GUI (Graphical User Interface) not the command line or DOS prompt.

  1. Double-Click on "My Computer".
  2. Right-Click on the C: drive.
  3. Choose "Properties".
  4. Find the "Tools" tab and choose it.
  5. Click on the "Defragment Now" button.

Remove Unnecessary Services

Do this after using the boot disk.

This is easy to say, but hard to do. There are so many different tools and configurations out there that it's impossible to say what is really needed or not. However, if your system tray (the little area next to the clock) has more than 3-8 items in it, you probably have too many and could get rid of some. Also, some incredibly annoying applications, such as Netscape (which I otherwise like) install crap you probably don't want or need in the system tray -- without asking! For example, Real Player and AIM (AOL Instant Messenger) are often installed. Quicken is another one that runs a bunch of crap most people don't use.

I can't even really tell you how to get rid of them, as they are all different. However, I can tell you where to look.

Win98 (and I assume ME)

If you have Win98 (or I assume ME, but I don't know for sure), go to Start, Programs, Accessories, System Tools, System Information, then get the Tools, System Configuration Utility. Better yet, go to Start, Run and type "msconfig" (without the quotes) and hit enter. This gets you to the same place, a lot faster.

Anyway, the System Configuration Utility has a very cool "Startup" tab. This shows you all the stuff that starts up with your PC. You can go in there and un-check things, then reboot and make sure everything still works. You should check all the other tabs, but unless you see something really obvious (like drivers for an old hardware device you no longer have) you should probably not touch them too much.

NT

Go to Start, Settings, Control Panel, Services. See what is started, and what is automatic. Try stopping things that you know you don't need. For example, you might be running a web server, FTP server, etc. without even knowing it. This is a large security risk as well. If you can stop services with no ill effects, you must change the startup type to manual (which will still allow the service to be started under some circumstances) or disabled (the service is now toast) or they will be restarted the next time you reboot.

Win2K

Go to Start, Settings, Control Panel, Administrative Tools, Services. See above NT section for the rest of the details.

Other Possibilities

Consider these after trying the above and/or using the boot disk.

  • Do you turn your PC off every ay or two? This is less of an issue for NT/2000, but with Win9x, if I leave it on for more than 5-8 days, it gets really wacky and crashes. Get an "uptime" utility to find out how long your machine has been up. See my tools page, under uptime to get one.
  • Another possibility is a bad driver for some device. Video card drivers are notorious for this. This one can look like either of the next two.
  • A version conflict between some files can cause these kinds of symptoms. It could be system DLLs or just about anything, and is very hard to diagnose. Sometimes, if all the problem started when you installed something (like the AOL client or IE, both of which can really screw up your system) or if it always/only happens when you run a particular program, you can figure out what did it and maybe uninstall or fix it. But sometimes it's more subtle than that, as in the case where it's a particular combination of thing, that doesn't happen often or is hard to reproduce. Then you're kind of stuck. Nuking the system and re-installing everything from scratch might fix it, but that's a lot easier said than done.
  • Finally, flaky hardware, new (and not quite compatible) hardware, or hardware in the process of going bad. Systematically swapping out hardware one bit at a time will usually find this kind of thing. Of course, that takes a lot of time, and most people do not have spares of everything. Your local computer shop might be able to help, but don't be surprised if they can't, won't or charge a lot for it.

The Boot Disk

This boot disk will work for Win9x/ME. It might work for NT/2000/XP, if you are using the FAT file-system (which you shouldn't be). This disk uses only FREE programs -- from the FREEDOS Project!
Download the Boot Disk.

This boot disk will clean out the TEMP directory and some other junk files, then try to run a command line ScanDisk. Since you are booting from the disk, you do not have to mess with DOS mode -- you're already where you need to be.

It will also clean up some other files that I didn't mention above. If any of the following exist, they will be deleted:

c:\file*.chk
c:\*.$$$
c:\*.tmp
c:\~*.*
c:\dos\*.$$$
c:\dos\*.tmp
c:\dos\~*.*

I will add more to this page as time allows. If you have a specific question, let me know, I might be able to help.