Previous | Next

System Startup Files

This section describes the following files involved in Windows 98 system startup:

Table 5.5 summarizes how Setup renames the system files from the previous operating system when Windows 98 is installed. (The Windows 98 files are renamed with .W40 file name extensions when you start the computer with the other operating system.)

Table 5.5 Setup system file naming

Original MS-DOS file name Renamed file under Windows 98
Autoexec.bat Autoexec.dos
Command.com Command.dos
Config.sys Config.dos
Io.sys (or Ibmbio.com) Io.dos
Mode.com Mode_dos.com
Msdos.sys (or Ibmdos.com) Msdos.dos

Io.sys: The Real-mode Operating System

In Windows 98, the Io.sys system file replaces the MS-DOS system files Io.sys and Msdos.sys. This real-mode operating system file contains the information needed to start the computer. Your computer no longer needs Config.sys and Autoexec.bat to start the Windows 98 operating system (although these files are preserved for backward compatibility with certain applications and drivers).

Note

The Windows 98 Io.sys file is automatically renamed to Winboot.sys if you start the computer using your previous operating system.

The drivers loaded by default in Io.sys include the following files, if they are found on the hard disk:

Most of the common functionality provided by the various Config.sys file entries in older operating systems is provided in Io.sys. Table 5.6 lists the common entries from Config.sys that are incorporated into Io.sys for Windows 98.

Table 5.6 Config.sys settings incorporated into Windows 98 Io.sys

Entry Description
dos=high Specifies that MS-DOS should be loaded in the high-memory area (HMA). Also, the umb value is included if EMM386 is loaded from Config.sys. (Io.sys does not load EMM386.)
himem.sys Enables access to the HMA. This line loads and runs the real-mode Memory Manager. Himem.sys is loaded by default in Windows 98.
ifshlp.sys The 32-bit Installable File System Manager uses the services provided by this driver to assist in trapping real-mode file system and network-related APIs.
setver.exe Optional TSR-type device. It is included for compatibility. Some MS-DOS-based applications require a specific version of MS-DOS to be running. This file responds to applications that query for the version number and sets the version number required.
files= Specifies the number of file handle buffers to create. This is specifically for files opened using MS-DOS calls and is not required by Windows 98. It is included for compatibility with older applications. The default value is 60.
lastdrive= Specifies the last drive letter available for assignment. This is not required for Windows 98 but is included for compatibility with older applications. If Windows 98 Setup finds this entry, it is moved to the registry. The default value is z.
buffers= Specifies the number of file buffers to create. This is specifically for applications using Io.sys calls and is not required by Windows 98. The default value is 30.
stacks= Specifies the number and size of stack frames. This is not required for Windows 98 but is included for compatibility with older applications. The default value is 9,256.
shell=Command.com Indicates what command process to use. By default, the /p switch is included to indicate that the command process is permanent and should not be unloaded. If the /p switch is not specified, Autoexec.bat is not processed and the command process can be unloaded when quitting the operating system.
fcbs= Specifies the number of file control blocks that can be open at the same time. You should use a fcbs= line in Config.sys only if you have an older program that requires such a setting. The default value is 4.

To override default values in Windows 98 Io.sys

The values in Io.sys cannot be edited. If Config.sys contains switches or other parameters for any of the drivers or settings created by Io.sys, the Config.sys entries override the Io.sys defaults. Entries for files=, buffers=, and stacks= must be set in Config.sys to at least the default values in Io.sys.

Note

Io.sys does not load Emm386.exe. If any of your applications requires expanded memory or loads data into the high memory area, EMM386 must be loaded in Config.sys.

Msdos.sys: Special Startup Values

Windows 98 Setup creates a hidden, read-only system file named Msdos.sys in the root of the computer’s boot drive. This file contains important paths used to locate other Windows files, including the registry. Msdos.sys also supports an [Options] section, which you can add to tailor the startup process.

The following example shows a typical file with default values:

[Options]
BootGUI=1

[Paths]
WinDir=C:\WINDOWS
WinBootDir=C:\WINDOWS
HostWinBootDrv=C

Most values in the [Options] section are Boolean — that is, the value can be 1 (enabled) or 0 (disabled). Table 5.7 describes entries in Msdos.sys, using the typical default values.

Table 5.7 Msdos.sys entries

Entry Description
[Paths] section
HostWinBootDrv=c Defines the location of the boot drive root directory.
WinBootDir= Defines the location of the necessary startup files. The default is the directory specified during Setup; for example, C:\Windows.
WinDir= Defines the location of the Windows 98Windows 98 directory as specified during Setup.
[Options] section
AutoScan= Enables ScanDisk to run automatically when your computer restarts. The default is 1. When this value is set to 1, ScanDisk will run automatically., you will be prompted if you want to run ScanDisk; if you do not respond after one minute, ScanDisk runs automatically. Setting this value to 0 disables this feature. Setting it to 2 launches ScanDisk automatically (if needed), without prompting you.
BootDelay=n Sets the initial startup delay to n seconds. The default is 0is 2. BootKeys=0 disables the delay. The only purpose of the delay is to give the user sufficient time to press F8press ctrl after the Starting Windows message appears.
BootFailSafe= Enables Safe Mode for system startup. The default is 0. (tThis setting is typically enabled typically by equipment manufacturers for installation.).
BootGUI= Enables automatic graphical startup into Windows 98Windows 98. This is equivalent to putting the win statement in Autoexec.bat. The default is 1.
BootKeys= Enables the startup option keys (that is, F5, F6, and F8). The default is 1. Setting this value to 0 overrides the value of BootDelay=n and prevents any startup keys from functioning. This setting allows system administrators to configure more secure systems. (These startup keys are described in Chapter 27, "General Troubleshooting.").
BootMenu= Enables automatic display of the Windows 98Windows 98 Startup menu, so that the user must press CTRL to see the menu. The default is 0. Setting this value to 1 eliminates the need to press CTRL to see the menu.
BootMenuDefault=# Sets the default menu item on the Windows Startup menu; the default is 3 for a computer with no networking components and 4 for a networked computer.
BootMenuDelay=# Sets the number of seconds to display the Windows Startup menu before running the default menu item. The default is 30.
BootMulti= Enables dual-boot capabilities. The default is 0. Setting this value to 1 enables the ability to start MS-DOS by pressing F4 or by pressing F8 to use the Windows Startup menu.
BootWarn= Enables the Safe Mode startup warning. The default is 1.
BootWin= Enables Windows 98Windows 98 as the default operating system. Setting this value to 0 disables Windows 98Windows 98 as the default; this is useful only with MS-DOS version 5 or 6.x on the computer. The default is 1.
DblSpace= Enables automatic loading of Dblspace.bin. The default is 1.
DoubleBuffer= Enables loading of a double-buffering driver for a SCSI controller. The default is 0. Setting this value to 1 enables double-bufferingdouble buffering, if required by the SCSI controller.
DrvSpace= Enables automatic loading of Drvspace.bin. The default is 1.
LoadTop= Enables loading of Command.com or Drvspace.bin at the top of 640K memory. The default is 1. Set this value to 0 with Novell NetWare or any software that makes assumptions about what is used in specific memory areas.
Logo= Enables display of the animated logo. The default is 1. Setting this value to 0 also avoids hooking a variety of interrupts that can create incompatibilities with certain memory managers from other vendors.
Network= Safe Mode With Networking is no longer supported in Windows 98Windows 98. This value should be set to 0 or left blank to disable this feature.

Tip for Starting an Earlier Version of MS-DOS

If you installed Windows 98 in its own directory, the earlier version of MS-DOS is preserved on your hard disk. If you set BootMulti=1 in the [Options] section in the Windows 98 version of Msdos.sys, you can start the earlier version of MS-DOS by pressing F4 when the Starting Windows message appears during system startup.


Config.sys and Autoexec.bat

For Windows 95 and Windows 98, the content and method for handling Config.sys and Autoexec.bat during system startup have changed. Windows 98 automatically loads drivers and sets defaults by using Io.sys, the registry, and other mechanisms, rather than Config.sys and Autoexec.bat.

Computers that require certain real-mode drivers or TSRs, however, will continue to require that software be loaded from these configuration files. Also, Config.sys and Autoexec.bat might be required to enable certain software options. Some options, such as long command lines, can also be enabled by using the Command.com program properties, as shown in the following illustration.

Config.sys Processing

Config.sys defaults are implemented by Io.sys, as described in the previous section. However, Config.sys can contain application-specific entries in addition to information stored in Io.sys. These are processed in the sequence they are listed. After the base Config.sys file has been read, all devices are loaded, and Command.com is started.

Windows 98 loads memory managers supplied by other vendors if they are present in Config.sys; however, some might cause errors. Similarly, Windows 98 allows the use of command shells from other vendors, but there are some differences. For example, long file names are disabled, which might also indicate that other problems could occur using these command shells.

Config.sys Changes for Windows 98

Windows 98 has predefined settings built in for most common Config.sys settings, so Windows 98 Setup removes many of these lines (such as settings for files, buffers, and stacks) if they are equivalent to the default values, by using rem to comment out the line.

Tips for Editing Config.sys in Windows 98

If you edit Config.sys in Windows 98, observe the following basic guidelines:

Do not include the smartdrv command. Windows 98 includes built-in disk caching, and double-buffering is now provided by Dblbuff.sys.

Remove any device=mouse.sys lines or similar lines. Windows 98 includes built-in mouse support.


Autoexec.bat Processing

Autoexec.bat is not required for Windows 95 or Windows 98, but it is included for compatibility purposes. If the computer has an Autoexec.bat file, each line is processed in sequence during system startup. Autoexec.bat can contain additional application-specific entries that are run in the sequence they are listed.

Windows 98 passes the initial environment to Command.com with the correct Windows and Windows Command directories already in the path and with the environment variables PROMPT, TMP, and TEMP already set. (TEMP= and TMP= indicate locations for temporary directories; both are specified for compatibility reasons.)

Table 5.8 describes the Autoexec.bat commands that have equivalent default settings created in Io.sys for Windows 98.

Table 5.8 Autoexec.bat equivalents for Windows 98 Io.sys default settings

Command Meaning
net start Loads the real-mode network components and validates the binding. Any errors received are placed in the Ndislog.txt file. (SYSINIT or Command.com performs the necessary net start command.)
set path Sets the path as specified.

The default Windows 98 environment includes the following:

tmp=c:\windows\temp
temp=c:\windows\temp
prompt=$p$g
path=c:\windows;c:\windows\command
comspec=c:\windows\command\Command.com

Autoexec.bat Changes for Windows 98

Windows 98 Setup makes the following basic changes to Autoexec.bat:

Tips for Editing Autoexec.bat in Windows 98

If you edit Autoexec.bat in Windows 98, observe the following basic guidelines:

Do not include other versions of Windows in your path.

Start the path with C:\Windows;C:\Windows\Command (using the name for the Windows 98 directory on your hard disk if it is not \Windows).

Windows 98 Setup leaves your previous MS-DOS directory in the path. Do not change this.

Do not add SMARTDrive or other disk caches. Windows 98 includes built-in caching.

Do not include any statements for loading mouse support software. Windows 98 includes built-in mouse support.

If it is necessary to connect to a network server when you start Windows 98, create a batch file, and run it from the STARTUP directory, rather than placing an entry in Autoexec.bat.


System.ini and Win.ini

This section describes changes related to system startup made by Windows 98 Setup to System.ini and Win.ini. Mappings for other changes between Windows 3.1x and Windows 98 are described in Chapter 31, "Windows 98 Registry."

System.ini Changes for Windows 98

Table 5.9 lists configuration options that have been added to System.ini, deleted, or moved to the registry. Most of these options for Windows 98 are now stored in the registry and are no longer required in System.ini.

Table 5.9 Changes made to System.ini entries in Windows 98

Change Affected entries
Added to the [Boot] section comm.drv=comm.drv
dibeng.drv=dibeng.dll
gdi.exe=gdi.exe
sound.drv=sound.drv
user.exe=user.exe
Added to the [386Enh] section device=*int13
device=*dynapage
device=*vshare
device=*vcd
Deleted in the [386Enh] section device=*configmg
device=*vfd
device=isapnp.386
device=lpt.386
device=pagefile.386
device=serial.386
device=wshell.386
maxbps=
timercriticalsection=
Moved from the [386Enh] section to the registry Network=
Network3=
SecondNet=
Transport=
V86ModeLANAs=
Moved from the [Network] section to the registry AuditEnabled=
AuditEvents=
AuditLogSize=
AutoLogon=
Comment=
ComputerName=
DirectHost=
EnableSharing=
FileSharing=
LANAs=
LMAnnounce=
LMLogon=
LogonDisconnected=
LogonDomain=
LogonValidated=
Multinet=
PasswordCaching=
PrintSharing=
Reshare=
SlowLanas=
Winnet=
Workgroup=
Moved from the [Network drivers] section to the registry All parameters
Moved from the [nwnblink] section to the registry lanabase=

Set the related parameters using Windows 98 tools as follows:

Win.ini Changes for Windows 98

Table 5.10 shows how the font and desktop information in Win.ini is transferred to the registry in Windows 98.

Table 5.10 Changes made to Win.ini entries in Windows 98

Change Affected entries
Moved from the [Windows] section to the registry Beep
BorderWidth
CursorBlinkRate
DoubleClickSpeed
KeyboardDelay
KeyboardSpeed
MouseThreshold1
MouseThreshold2
MouseSpeed
ScreenSaveActive
ScreenSaveTimeOut
SwapMouseButtons
Moved from the [Windows Metrics] section to the registry BorderWidth
CaptionHeight
CaptionWidth
MenuHeight
MenuWidth
MinArrange
MinHorzGap
MinVertGap
MinWidth
ScrollHeight
ScrollWidth
SmCaptionHeight
SmCaptionWidth

In addition, Setup always adds ATMWorkaround=1 to the [Pscript.Drv] section in Win.ini.

Set the related parameters using Windows 98 tools as follows:

Bootlog.txt: The Startup Process Log

The Bootlog.txt file contains a record of the current startup process for starting Windows 98. This file is created during Setup when the Windows 98 operating system is first started from Windows 98 Setup. This file shows the Windows 98 components and drivers loaded and initialized, and the status of each.

When you use the F8 option for interactive system startup, you can choose to create a boot log during system startup. You can also use the /b switch to create a boot log when running Win.com from the command line to isolate configuration problems. For information, see Chapter 27, "General Troubleshooting."

The information in Bootlog.txt is written in sequence during startup, in roughly five major sections. Depending upon a specific error condition, you might need to examine multiple sections. Notice, however, that a loadfailed= entry means only that the related VxD refused to load. For example, loadfailed=ebios indicates that the EBIOS driver did not detect EBIOS in the computer and so reported that it should not be loaded. Table 5.11 shows the sections to examine and describes the possible errors and methods for correcting those errors.

Table 5.11 Bootlog.txt sections for determining errors

Section and errors Corrective action
Loading real-mode drivers:
No extended memory specification (XMS) memory Verify that the section contains this entry:

loadsuccess=c:\windows\himem.sys

If not, verify the file and entry in Config.sys

Incorrect MS-DOS version (message appears when driver loads) If this error appears when loading drivers or programs that worked before, verify that the section contains this entry:

loadsuccess=c:\windows\setver.exe.

Windows 98 does not start on a SCSI hard drive Verify that the section contains this entry:

loadsuccess=c:\windows\dblbuff.sys

Ifshlp.sys message occurs Verify that the section contains this entry:

loadsuccess=c:\windows\ifshlp.sys

Loading VxDs:
Verify the loading, system, and device initialization of all VxDs by checking the section for these entries:

loading vxd = ios
loadsuccess = ios

Cannot access D??SPACE drives Verify that the section contains this entry:

loadsuccess = c:\dblspace.bin

Sharing violations occur Might be due to failure of the Vshare VxD to load. The section might contain an entry such as:

loadfailed = vshare

System-critical initialization of VxDs:
System-critical initialization error occurs Verify that the section contains entries such as:

syscritinit=ios
syscritinitsuccess=ios

Device initialization of VxDs:
Verify that the section contains entries such as:

deviceinit=ios
deviceinitsuccess=ios

Successful VxD initialization:
Verify that the section contains entries such as:

initcomplete=ios
initcompletesuccess=ios


Table 5.12 shows the kinds of entries in Bootlog.txt to examine for information about the system startup process.

Table 5.12 Bootlog.txt entries to examine for system startup

Bootlog.txt entry Description
Error Errors that were logged during startup
Fail Failures that occurred during startup
Dynamic load success Dynamically loaded VxDs
INITCOMPLETESUCCESS Loaded VxDs
LoadStart, LoadSuccess,
Loading Device, Loading Vxd
Indication of loading processes
LoadFailed Indication that component failed to load
SYSCRITINIT, SYSCRITINITSUCCESS System initialization actions
DEVICEINIT, DEVICEINITSUCCESS Device initialization actions
Dynamic load device, Dynamic init device Dynamic loading and initialization of devices
Initing, Init Success, INITCOMPLETE, Init, InitDone Initialization actions
Status Current status indicator

For example, if you see an entry such as DynamicInitDevice=PPPMAC but there is no matching entry such as DynamicInitSuccess=PPPMAC, that VxD failed to load. If a driver in the Windows System\Iosubsys directory stalls when it is being initialized, you can sometimes successfully start the system by renaming that file.

The following shows a sample Bootlog.txt file:

Loading Device = C:\WINDOWS\HIMEM.SYS
LoadSuccess    = C:\WINDOWS\HIMEM.SYS
Loading Device = C:\WINDOWS\EMM386.EXE
LoadSuccess    = C:\WINDOWS\EMM386.EXE
Loading Device = C:\WINDOWS\SETVER.EXE
LoadSuccess    = C:\WINDOWS\SETVER.EXE
Loading Device = C:\WINDOWS\COMMAND\ANSI.SYS
LoadSuccess    = C:\WINDOWS\COMMAND\ANSI.SYS
Loading Device = C:\WINDOWS\IFSHLP.SYS
LoadSuccess    = C:\WINDOWS\IFSHLP.SYS
Loading Vxd = VMM
LoadSuccess = VMM
Loading Vxd = nwlink.vxd
LoadSuccess = nwlink.vxd
Loading Vxd = vnetsup.vxd
LoadSuccess = vnetsup.vxd