# Windows Voodoo

{{< snippet "obsolete" >}}

## 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 at {{< snippet "contact" >}} if it's not.

> [!Warning]
> 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](#disclaimer)\!

  - "STOP 0x0000007B" Error After Moving Windows 2000/XP System Disk to
    Another System
    \[*[Windows
    2000](http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q271965)*\]
    \[*[Windows
    XP](http://support.microsoft.com/default.aspx?scid=kb;en-us;Q314082)*\]
  - How to Move a Windows 2000/XP Installation to Different Hardware
    \[*[Windows
    2000\]](http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q249694)*
    \[*[Windows
    XP](http://support.microsoft.com/default.aspx?scid=kb;en-us;Q314070)*\]

-----

## 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](http://cexx.org/lspfix.htm)* "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](http://www.lavasoftusa.com/software/adaware/)* and
*[Spybot](http://www.safer-networking.org/)* programs.

  - *[The PC Decrapifier](http://www.pcdecrapifier.com/)* will uninstall
    many of the common trialware and annoyances found on many of the PCs
    from big name OEMs (XP or newer only).
  - *[Spyware/AdWare/Malware FAQ and Removal
    Guide](http://www.io.com/~cwagner/spyware.html)* is a great
    discussion of all crapware issues.
  - *[Safer Computing](http://www.aselabs.com/articles.php?id=124)*
    talks about backups, anti-virus, avoiding crapware, spam and more.
  - *[Adaware Vs. Spybot](http://www.aselabs.com/articles.php?id=125)*
    review.

-----

## 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 {{< xref "/windows/winvoodoo#bootdisk" "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\]](http://support.microsoft.com/support/kb/articles/Q118/5/79.asp)*"
for details and instructions on how to fix it.

### Clean out the "Temp" directory

Read the [disclaimer](#disclaimer)\!

*Skip this step if you are using my boot disk. Also, see my
`Sweepup.bat` script in {{< xref "/windows/win-tools#sweepup" >}}.*

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](#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
    {{< xref "/windows/win-tools" >}} 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](http://www.freedos.org/)*
Project\!
[Download the Boot Disk](/public/tools/bootdisk.exe).

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\\\~\*.\*
```

{{< snippet "obsolete" >}}
