System File Checker explained......(hopefully in layman's terms)

System File Checker, or sfc.exe, is a very handy tool that is part of Windows 98 which is often misused (which is likely why it was removed from later versions of Windows). It's primary usefulness is in extracting files from the Windows CD. It is often misused to identify corrupted files. To jump right to the extraction steps, click here

The problem is that System File Checker does not know the difference between a corrupted file and an updated one. Many system files are updated with a newer version via a WindowsUpdate session or by the installation of an upgrade to Internet Explorer. When sfc is used to scan for altered files, it only knows that the file has changed in some fashion, and thereby identifies it as "possibly corrupt".

What happens then is that a user is then prompted to replace the "possibly corrupt" file with a new one from the Windows 98 CD. This is not a good idea, as it will be replacing a newer version of itself that was created by an update. By replacing a newer version with an older one, something is bound to go wrong. Some function or other will call for that newer version and, of course, will not find it. This will result in an error message like "XYZ is linked to missing export ABC....", and the program will not run.

Another frequently seen error is the misguided advice to use it to extract a new vmm32.vxd file due to an error message listing that as a potential problem. This .vxd file is a shell that contains other needed drivers and is built during an installation. Extracting a new vmm32.vxd from the Windows 98 CD is replacing a system built file with an empty shell. Guess what's going to happen when the system calls for a driver contained in that file (or in some cases - drivers)......... My advice? Don't do it.

Ok, so enough of the bad, now for some good:

The best way to use System File Checker? Simple, when your system is running just the way you want (don't laugh, it does happen), run sfc, and for each file that it identifies as possibly corrupt, choose the option to update. Then, if something does go wrong, you can scan for altered files and those identified as "possibly corrupt" may very well be, and should be replaced. The challenge there is knowing what file version it is and where to get the right one from. There is a fairly useful database published by Microsoft, but it has been known to be incorrect at times. Still, it's better than nothing.....

http://support.microsoft.com/servicedesks/fileversion/dllinfo.asp

Now, as to using sfc to replace a file, it's actually quite good. These steps should walk you right through it.

If your system came with Windows 98 pre-installed, please read the addendum below first

1) Place your windows CD in the CD-Rom drive, and hold the <shift> key down for around 10 seconds when inserting to override the autorun feature.

2) Start/run sfc (for system file checker), select the option to extract one file and put <name of file> in the box and click "start".

3) In the "from" box, type in X:\win98, where X is the letter designation of your CD drive. It is not necessary to designate the proper .cab (cabinet) file as you would in using a DOS extract command except in the case of user.exe (see below)

4) In the "to" box, type in the location that the file is going to, usually C:\Windows or C:\Windows\system. You should generally always place the replacement file in the same folder as the one being replaced, though there are exceptions.

5) Follow the instructions to create a backup (if applicable), this will leave a copy of the replaced file in the C:\windows\helpdesk\sfc file (or wherever else you designate). This file can be put back into service using the COPY command from DOS if something should go wrong and your system is rendered unbootable (this is rare, except for in the case of user.exe, which is why I discuss it here).

It should only take a second to run when started and you will be prompted to restart the system for it to take effect.

Addendum:

If your machine came with Windows pre-installed, and your computer builder only supplied you with a "restore" CD, rather than a regular or OEM version of Win98, then the above instructions will not work. The following is a work-around for you:

First locate the cab files placed on your hard drive by the pre-install. To do this, click start/find and search for win98*.cab. The files should show in a folder similar to C:\windows\options\cabs, or perhaps C:\win98.

Now, in the above instructions, ignore the CD parts (1 & 2) completely. Then, in the "where from" part, substitute the pathway discovered in the step above (like C:\windows\options\cabs) for the X:\win98.

The rest of the steps are the same.

User.exe

This particular file needs a little extra care. It is rare to have to actually replace this file with a new one from the Windows98 CD, but if you do, there is an extra step you must take. On the Windows 98 CD, there are two user.exe files. One is in the mini.cab, the other in the Win98_42.cab (First Edition of Win98) or the Win98_46.cab (Second Edition).

If you don't specify the proper location to extract this file from, it will be pulled from the mini.cab file. This will render the machine unbootable. So, if you need to replace this file, you should specify the exact location by putting in X:\Win98\Win98_42.cab (or 46 depending) in the "where from" part.

For more on System File Checker, see these Knowledge base articles:

Description of the System File Checker Tool (Sfc.exe)

System File Checker tool extracts incorrect file versions

How to extract original compressed Windows Files

Back to the Main Page