If you’re supporting the original version of Windows 98 and are troubleshooting a problem that appears to be caused by a corrupt system file, your first line of attack will be to run the System File Checker to check the integrity of the system files and, if necessary, replace those problem files. However, due to a sporadically occurring glitch in the way System File Checker works, it’s possible that running the utility can cause what appears to be an even bigger problem. For example, the system could hang on reboot or display a Windows Protection Error message.

This problem appears when the System File Checker baseline file (Default.sfc) contains incorrect information about the source cabinet file locations for some Windows 98 system files. This article will examine this System File Checker problem in greater detail and show you how to work around it.

More detail
Before I get started on the path to the solution, let’s take a few moments to get a better understanding of the problem. To begin with, this problem only occurs in the original version of Windows 98 and only when System File Checker is attempting to replace one of the main system files: User.exe, Gdi.exe, Setupx.dll, or Krnl386.exe. The problem was corrected in Windows 98 Second Edition.

As I mentioned, the problem originates in System File Checker’s baseline file (Default.sfc) and pops up when this file contains incorrect information on the location of a specific file. As you may know, when System File Checker detects a corrupt system file, it will attempt to replace the file with an original copy of the file that it extracts from a cabinet file, more commonly known as a CAB file. In order to locate the file, System File Checker consults the Default.sfc baseline file, which is supposed to contain a master list of the locations of all the files.

If System File Checker can’t locate the path to the file in the Default.sfc baseline file, it will conduct a manual search of the CAB files. The CAB files will reside in the C:\Win\Options\Cabs or the C:\Cabs folder if Windows 98 came preinstalled on the computer, or on the Windows 98 CD if you performed the Windows 98 installation procedure yourself. When conducting the manual search, System File Checker will sequentially access each file according to the default order in which MS-DOS sorts the folder listing—alphabetically. Of course, this sounds like the logical way to approach this task.

However, the problem will arise if, during the manual search, System File Checker encounters the file it’s looking for in the Mini.cab file, which appears before the rest of the standard CAB files because the standard CAB files are all named Win98_#.cab, where # is a number.

The Mini.cab file contains the mini-Windows mode versions of the main systems files. Only Windows 98 Setup and DriveSpace use these special versions of the main system files. Thus, they should not be used in the standard Windows 98 installation. If these special versions are inadvertently installed, they will, of course, cause the operating system to fail in some fashion.

Working around the problem
This problem at first appears to be a Catch-22 because you’re encountering a problem that System File Checker is supposed to solve, when, in fact, System File Checker is the cause of the problem. Fortunately, there is a work around.

To begin, you’ll need a Windows 98 Startup Disk. If the CAB files are not on your hard disk, then you’ll also need to have a Windows 98 CD. You’ll start by booting your system with the Windows 98 Startup Disk. You’ll see the DOS-based Microsoft Windows 98 Startup Menu. If the CAB files are on the hard disk, choose the Start Computer Without CD-ROM Support option. If the CAB files are not on your hard disk, choose the Start Computer With CD-ROM Support option.

Once you make a selection, the Windows 98 Startup Disk will create a RAM disk drive, assign it the letter D, and place a set of diagnostic utilities on the D: drive. This set of utilities includes the Extract utility, which you’ll use to manually extract the correct system file from the appropriate CAB file.

As soon as the Windows 98 Startup Disk finishes its bootup operation, you’ll find yourself at an A:\> prompt. At this point, type the command:
Ext

This command will launch an automated version of the Extract utility called the Microsoft Extract Command Line Helper. You’ll then be prompted to type the path to the CAB files. Once you type the path and then press [Enter], you’ll be prompted to provide the name of the file or files that you want to extract. You then type the filename(s) and press [Enter]. Next, you’ll be prompted to provide the path to the folder in which you want to extract the file. Once you type the path and press [Enter], you’ll see a confirmation prompt. At this point, your screen will look similar to the one shown in Figure A.

Figure A
You’ll use the Microsoft Extract Command Line Helper to extract the correct version of the corrupt file.

When you type y and press [Enter], Extract Command Line Helper will search through the appropriate CAB files and locate the original system file. You’ll then be prompted to overwrite the file. Simply type y and press [Enter]. When you do, the file will be extracted and placed in the correct folder, overwriting the corrupt file in the process.

When the procedure is complete, you’ll return to the A:\> prompt. At this point, you can remove the Windows 98 Startup Disk and reboot your system.

Restoring the Default.sfc baseline file
Once you have your system up and running again, you’ll want to correct the problem by restoring the original Default.sfc baseline file. However, keep in mind that when you do so, you’ll basically be starting from scratch as far as System File Checker is concerned. That means that the utility will prompt you again about any system files changes that you have already approved since you installed the operating system.

You can launch the utility by clicking Start | Programs | Accessories |System Tools, then selecting System Information. Once System Information is up and running, pull down the Tools menu and select System File Checker.

When you see the System File Checker window, as shown in Figure B, click the Settings button to display the System File Checker Settings dialog box. Then, select the Advanced tab, as shown in Figure C.

Figure B
You’ll start by launching System file Checker and clicking the Settings button.

Figure C
Click the Restore Defaults button to replace the incorrect baseline file.

Now, click the Restore Defaults button. When you do, you’ll see the Restore Default Verification Data File dialog box, shown in Figure D. Make sure that the Restore From text box contains the correct path.

Figure D
You’ll be prompted to confirm the restore operation.

To initiate the operation, just click OK. Once it’s complete, you can close the System File Checker Settings dialog box. At this time, you may want to run the System File Checker.

Additional information
Of course, the best way to avoid this problem is to update your original Windows 98 systems to Windows 98 Second Edition. However, if that’s not possible, you may want to learn more about this problem. If so, here are a few Microsoft Knowledge Base article you should investigate.