Chapter 5 - Setup Technical Discussion

This chapter provides technical details about Microsoft Windows 98 Setup, including background information about Safe Recovery and detailed descriptions of the Setup and system startup processes.

Overview of Setup Technical Discussion

You must know certain technical details when using Microsoft Windows 98 Setup within your particular computing environment. This chapter presents technical information about how to ensure the safe detection of hardware, recovery from problems, and verification of configurations. It goes on with detailed information about the startup process, system startup files, Windows 98 Setup with non-Windows 98 operating systems, removing Windows 98, and troubleshooting Windows 98 Setup.

Top of pageTop of page

Safe Detection, Safe Recovery, and Verification

This section provides technical details about the features that ensure safe hardware detection, recovery from Setup problems, and configuration verification in Windows 98 Setup.

Safe Detection in Windows 98 Setup

Devices and buses are grouped as classes in Windows 98 for purposes of detecting and installing device drivers and managing system resources. Windows 98 differentiates between devices and drivers that comply with the Plug and Play specification and earlier versions of devices and drivers (referred to in the Microsoft Windows 98 Resource Kit as legacy devices). Because of this differentiation, Windows 98 Setup detects hardware components and devices in two ways:

Using Plug and Play, an interactive query process, to identify Plug and Play–compliant devices and peripherals. 

Using a Plug and Play detection process for legacy devices and peripherals. 

After Setup detects a device, it adds configuration information to the registry and installs the appropriate device drivers. The same procedures used during Setup for detecting Plug and Play or legacy hardware devices are also used to detect or configure new devices after Windows 98 has been installed.

Windows 98 supports detection of base computer components, such as communications ports and processor type, and provides more robust detection of computer devices, such as display adapters, pointing devices, hard disk controllers, floppy-disk controllers, and network adapters.

Windows 98 Setup also tries to detect any hardware resource conflicts early in the installation process. This helps to avoid the problems that occur when such hardware resources as Interrupt Requests (IRQs), I/O addresses, and direct memory access (DMA) are used by more than one device.

To avoid computer failure during the detection process, Windows 98 uses a safe detection method to search for hints from configuration files, read-only memory (ROM) strings, or drivers loaded in memory to determine whether the computer contains each class of hardware. If no such hints are found, the detection process skips detection of the entire class. If hints are found, the detection process seeks information from specific I/O ports.

Windows 98 automatically reads the command lines in Config.sys to find hints for device class detection. Then Windows 98 loads detection modules based on information in the Msdet.inf file, which lists the hardware to be detected and points to specific INF files for each device class (for example, Scsi.inf for SCSI host adapters). Device information from the INF files is written to the registry.

For more information about the format of these files, see Appendix C, "Windows 98 INF Files."

Windows 98 can also read a particular Config.sys device= line for resource information to be avoided (that is, protected) during the detection process. This is useful if Windows 98 Setup cannot detect or support a certain device when it is known that the detection process can cause such a device to fail. For example, the detection process could render a fax modem inoperative because scanning the I/O port might confuse the device driver. Windows 98 can read the device= line in Config.sys for this model and protect the associated I/O region from other detection modules.

Windows 98 Setup asks you to confirm which classes should be skipped in the detection process. If you know that the computer has a device in one of those classes, you can force Setup to detect that device class.

Safe detection exists for four classes of devices: network adapters, SCSI controllers, proprietary CD-ROM adapters, and sound cards.

Safe Detection of Network Adapters

Windows 98 Setup performs the following kinds of steps for safe detection of network adapters:

Find Lsl.com in memory; if present, inquire for network adapter settings.

Find Ipx.com in memory; if present, inquire for network adapter settings.

Search the Windows, Windows for Workgroups, and LAN Manager directories for Protocol.ini; if present, read the file to find network adapter settings.

Safe Detection of SCSI Controllers

When trying to detect SCSI adapters, Windows 98 Setup checks for device drivers in Config.sys and then scans ROM strings from the SCSI adapter for manufacturers' names. If known drivers or known strings are found, the corresponding detection procedure for that class is used; otherwise, the entire class is skipped. A list of the known strings and drivers that Windows 98 Setup checks is stored internally in a detection dynamic-link library (DLL). (For more information about the SCSI devices and drivers that Windows 98 supports, see the Manufacturers and Models lists in the Add New Hardware option in Control Panel.)

Different SCSI devices require different methods for safe detection. For example, a SCSI card is typically used with a combination of hard disks, CD-ROM drives, tape backup drives, scanners, and similar devices. For everything to work (except the hard disk), some sort of device driver must be loaded in Config.sys.

For hard disk drives, however, the driver usually is not loaded in Config.sys, but INT 13 ROM is enabled. Therefore, safe detection for SCSI class devices looks for a ROM string with a manufacturer's name.

Safe Detection of Proprietary Adapters for CD-ROM

Windows 98 supports Mitsumi, SONY, and Panasonic proprietary adapters for CD-ROM. Because drivers for these devices are loaded in Config.sys, safe detection first scans Config.sys for the drivers that are present. If a device= line for such a driver is found, the corresponding detection module is loaded for that type of device.

Safe Detection of Sound Cards

Safe detection scans Config.sys and reads System.ini for hints about sound cards. If known drivers are not found, the entire class is skipped.

If Windows 98 does not have detection code for certain hardware, the equipment manufacturer can force a device to be detected by adding information about it in the Msdet.inf file. Windows 98 detection behaves as if it has detected the device and installs the device according to the INF information provided by the equipment manufacturer.

Windows 98 Setup does not detect sound cards by scanning I/O ports; instead, it checks only Config.sys and System.ini and performs detection as prescribed in Msdet.inf. Detection of sound cards by scanning I/O ports can cause the computer to stall. This is because detection calls a driver specific to a device class to send a signal to an I/O port. The driver expects a predetermined response, such as a signature from the adapter's ROM. If the wrong driver sends a signal to an I/O port address occupied by a different device class, the computer can stall.

Safe Recovery with Setup Log Files

Windows 98 Setup creates several log files: Bootlog.txt, Detlog.txt, Netlog.txt, and Setuplog.txt, as well as Detcrash.log, should Setup fail. The following sections describe these files.

Basically, the computer might stop or stall at three points during Windows 98 Setup: before, during, or after hardware detection.

If Setup fails before hardware detection, Windows 98 Setup recovers by reading Setuplog.txt to determine where the system stalled, what to redo, and what to skip. 

If Setup fails during hardware detection, the Detcrash.log file is created, containing information about the detection module that was running and the I/O port or memory resources it was accessing when the failure occurred.

When the detection process finds this file, it automatically runs in Safe Recovery mode to verify all the devices already in the registry and then skips all detection modules up to the failed module. Safe Recovery then skips detection and any attempts to configure the failed module, in effect skipping the action that caused the failure. Then, Safe Recovery continues the detection process, starting with the next module. If the detection process is completed successfully, Detcrash.log is deleted. 

Detcrash.log can be read only by Setup. For information about the text equivalent of this information, see "Detlog.txt: The Hardware Detection Log File" later in this chapter. 

Sometimes the detection process causes some devices (such as a CD-ROM drive or a network connection) to quit working. If you rerun Setup, Safe Recovery recognizes that the detection process has already been completed successfully and assumes that all the necessary hardware information is in the registry. Therefore, it skips the detection process completely at this point and continues the installation process. 

Setuplog.txt: The Setup Log File

The Setuplog.txt file is an ASCII text file that contains Windows 98 Setup information created during the installation process. While Windows 98 is being installed, corresponding entries are written to Setuplog.txt, listing information about the specific steps, their sequence, and the error conditions encountered. This file is used by Setup for recovery in case of setup failure, and it can also be used for troubleshooting errors that occur during the installation process.

Setup uses the information in Setuplog.txt to ensure that the installation does not fail twice because of the same problem. If you restart Windows 98 Setup after a setup process fails, Setup reviews the contents of Setuplog.txt to determine which steps completed successfully. If Setuplog.txt indicates that a process started but does not indicate that the process completed, that part of the installation process is skipped, and the next part is processed. Even if Setup encounters devices that cause several installation attempts, the installation process will always progress and skip the modules that failed.

Setuplog.txt is stored on the computer's root directory. Information is added to the file according to the order of the steps of the installation process. If an error occurs during installation, you can determine the probable cause of the error by examining the entries at the end of Setuplog.txt.

Information in Setuplog.txt is divided into the following basic categories:

Selected Setup sections, including [OptionalComponents], [System], [NameAndOrg], [Setup], [Network], [Started], [Dialogs], [Windows 98 CD-ROM], [Reinstall], and [batch_settings]. 

Setting up system startup parameters. 

Selecting the directory. 

Beginning the installation process. 

Queuing needed files in [FileQueue]. 

Copying needed files in [FileCopy]. 

Preparing to restart the system in [Restart]. 

Tip The [OptionalComponents], [System], and [NameAndOrg] sections can be copied from Setuplog.txt on a computer with a complete installation of Windows 98 and then added to equivalent sections in Msbatch.inf, as described in Chapter 3, "Custom Installations." Notice, however, that these sections in Setuplog.txt do not include networking information.

Table 5.1 shows entries in the Setuplog.txt file to check for information about the Setup process. Because entries are added to Setuplog.txt in the order that the related actions occur during Setup, you might be able to find a probable cause of any error by examining the entries at the end of the file.

Table 5.1 Summary of Setuplog.txt entries 

Setuplog.txt entry Description

InstallType

Type of installation

InstallDir

Directory where Windows 98 is installed

detection

Detection status

RunningApp

Applications running during installation

RootFilesRenamed

Files renamed in the root directory

error

Errors logged during installation

failed

Failures that occurred during installation

[OptionalComponents]

Optional components installed

[System]

System hardware configuration

batch settings

Installation parameters (Msbatch.inf settings)

Registry

Registry initialization status

filename 

Verification that a specific file was loaded during Setup

[Choose Directory]

Location and type of Windows files

[FileCopy]

Files copied during Setup

[Restart]

Issues to be completed after the computer is restarted

Detlog.txt: The Hardware Detection Log File

The Detlog.txt file contains a record of whether a specific hardware device was detected and identifies the parameters for the detected device.

During Windows 98 Setup, after Setup restarts your computer for the first time, it begins hardware detection, which can also occur when you use the Add New Hardware option in Control Panel to add a new device. Both Windows 98 Setup and Device Manager use Sysdetmg.dll, which contains all the detection modules for each device class and specific devices.

Windows 98 loads detection modules based on information in Msdet.inf that points to specific INF files for each device class, from which information is retrieved and written to the registry. The device class installers are DLLs that work with Device Manager to install, configure, and remove devices or classes of devices in the system. Device Manager generates a list of compatible drivers for the device from the appropriate INF file. For information about using Device Manager to configure device drivers, and for information about the device classes used to identify logical device types, such as display, keyboard, and network adapters, see Chapter 24, "Device Management."

By creating an updated Detlog.txt file every time the detection process runs, the detection module tracks the detected devices and the I/O port addresses used. Any existing Detlog.txt is renamed Detlog.old. If the detection process causes Setup to stall or the computer to lock up, a binary file named Detcrash.log is created. Detlog.txt is an ASCII text file created only for users to read; Windows 98 Setup reads the binary information in Detcrash.log. Any changes made to Detlog.txt are not passed to Detcrash.log.

The Detlog.txt file can be found in the root directory of the startup drive after Windows 98 is installed. The entries in Detlog.txt are placed in the order of the hardware information discovered as each step of the detection process is carried out. Table 5.2 briefly describes entries that appear in Detlog.txt.

Table 5.2 Summary of Detlog.txt entries 

Detlog.txt EntryDescription
Beginning of Detlog.txt: 

Parameters="xxxxxx"

Shows the switches specified in the Setup command line (that is, setup /p xxxxxx). For example:
Parameters "", Flags=01002233

WinVer = ########

Shows that environment detection is run. The MS-DOS version is in the high word, and the Windows version is in the low word. For example:
WinVer=0614030b,

AvoidMem =
#####h-#####h

If present, indicates the address range specified as upper memory blocks (UMBs), which detection avoids. For example:
AvoidMem=cd4a0-cd50f

DetectClass: Skip Class Media

Indicates that detection found no hints that the computer might have a particular device, so it skipped that class. For example, DetectClass: Skip Class Media indicates that no sound entries appear in the configuration files, so detection skips all the sound card detection modules. For DetectClass: Skip Class Adapter, detection skips searching for proprietary CD-ROM adapters such as SONY, Mitsumi, and Panasonic. DetectClass: Skip Class Net indicates that detection was skipped for network adapters.

DetectClass Override:

If one or more skip class entries appear in Detlog.txt, the Analyzing Your Computer screen appears in Setup to confirm skipping those classes, so you can override the decision. Related DetectClass Override lines appear in Detlog.txt for the classes checked.

Custom Mode:

Describes your selection for the devices you tell Windows 98 not to detect. For example:
CustomMode: resetting class ADAPTER
; Don't detect EtherLinkIII
CustomMode: DETECTELNK3=0

Devices verified =

Indicates the number of devices verified from the registry. If the number is 0, it usually means there was no existing registry, or the registry was empty.

Detecting system devices: 

Checking for:

Specifies that detection began looking for that device. The entry is followed by a description of the device or class being sought. When detection is checking for such a device as the Programmable Interrupt Controller, the Checking for: entry is followed by a QueryIOMem: entry specifying the Caller, rcQuery, and I/O range checked. If a device is detected, a Detected: entry is added specifying the device resource information. For example:
Checking for: Programmable Interrupt Controller
QueryIOMem: Caller=DETECTPIC, rcQuery=0
IO=20-21,a0-a1
Detected: *PNP0000\0000 =
[1] Programmable Interrupt Controller
IO=20-21,a0-a1
IRQ=2

Detecting network adapters: 

Checking for:

This section lists the attempts to detect network adapters. For example:
Checking for: Network Cards using Novell
ODI Driver
Checking for: EISA Network Cards

Protocol.ini Section

If detection finds Protocol.ini, it saves the [net_card] section in Detlog.txt. For example:
Checking for: Network Cards using
Microsoft Windows For Workgroups
; path to WFW protocol.INI
WFW: path=d:\w311\protocol.ini
; protocol.ini mac driver section
Protocol.ini: [MS$EE16]
Protocol.ini: DriverName=EXP16$

NCD: detecting network adapter

Indicates that detection has found a network adapter using safe detection (usually Protocol.ini), but the system has information for verifying this adapter. If this adapter is verified, a Detected line follows. For example:
NCD: detecting network adapter *pnp812d
QueryIOMem: Caller=DETECTWFW, rcQuery=0
IO=300-30f

The hardware detection process continues examining computer hardware. The "|" symbol in the IO= line (for example, IO=200-201 | 3e0-3e1) indicates a range of I/O entries that are checked during the detection process. In the Detlog.txt file, you will find a QueryIOMem: and an IO= line for each I/O address checked.

For most devices, multiple I/O addresses are checked, which can result in a detailed and redundant device detection list. The I/O address ranges checked during detection are grouped on one I/O line. Multiple addresses on an IO= line are separated by commas. For example:

Checking for: ATI Ultra Pro/Plus (Mach 32) Display Adapter 
QueryIOMem: Caller=DETECTMACH32, rcQuery=0 
IO=3b0-3bb,3c0-3df 
QueryIOMem: Caller=DETECTMACH32, rcQuery=0 
Mem=a0000-affff 

If the system stalls during hardware detection, you can determine the probable cause of the error by examining the last entries in Detlog.txt. You can use the information in this file to determine specific error conditions occurring in the hardware detection and reconfigure or replace the specific adapter or device. Table 5.3 shows specific kinds of entries to check in Detlog.txt for information about the results of the hardware detection process.

Table 5.3 Detlog.txt entries to check for troubleshooting 

Detlog.txt EntryDescription

detected

Detected devices

AvoidMem

Address ranges of UMBs avoided during detection

error

Errors logged during system detection

WinFlags

Setup mode used

Protocol.ini

Protocol.ini information that was saved during system upgrade

CustomMode

Hardware that was removed from detection in the custom Analyzing Your Computer dialog box

Devices verified

Devices found in the registry (if the value is 0, there was no existing registry, or the registry was empty)

Some additional notes on Detlog.txt and hardware detection:

Detection does not detect enumerated devices such as Industry Standard Architecture (ISA) Plug and Play devices, peripheral component interconnect (PCI) devices, and Personal Computer Memory Card International Association (PCMCIA) devices. For information about these devices, see Chapter 14, "Introduction to Networking Configuration." 

If the computer stalls during detection, and you rerun Windows 98 Setup and choose Safe Recovery, new detection information is appended to the previous Detlog.txt file. The previous version of Detlog.txt is saved as Detlog.old, overwriting any previous Detlog.old files. 

The hardware that has been tested and shown to be compatible with Windows 98 appears in the Manufacturers and Models lists in the Add New Hardware option in Control Panel.

Netlog.txt: The Network Setup Log File

Netlog.txt describes the detection results for network components during Windows 98 Setup. For information about Netdet.ini, the file that Setup uses to determine how to install networking components on computers running NetWare clients, see Chapter 17, "Windows 98 on Third-Party Networks."

Table 5.4 describes typical entries in a Netlog.txt file after you run Windows 98 Setup the first time. In this example, Client for Microsoft Networks is installed with the Internet Packet Exchange/Sequenced Packet Exchange (IPX/SPX)-compatible protocol, and both are bound to an Intel EtherExpress network adapter.

Table 5.4 Summary of Netlog.txt entries 

Netlog.txt entryDescription

ClassInstall (0x6) on Intel EtherExpress 16 or 16TP at Enum\Root\*PNP812D\0000

Network installation begins.

Examining class NET

Network detection is searching for network software of four class types: NET (network adapters), NETTRANS (protocols), NETCLIENT (clients), and NETSERVICES (such services as file and printer sharing).

Upgrade 2.00025000=VREDIR

A network client was found on the computer.

Upgrade to: VREDIR

The version of the network client was upgraded to the version included in Windows 98.

NdiCreate (Client for Microsoft Networks) OK

Setup successfully created an internal object representing the network client.

NdiCreate (Intel EtherExpress 16 or 16TP)

Setup successfully created an internal object representing the network adapter.

CreateNetwork, Batch=0

Setup referenced a batch file.

NdiCreate (IPX/SPX-compatible Protocol)

Setup successfully created an internal object representing the IPX/SPX-compatible protocol.

ClassInstall (0x6) end

 

ClassInstall (0x9) on Intel EtherExpress 16 or 16TP at Enum\Root\*PNP812D\0000

Protocols are about to be bound to the network adapter.

Validating IPX/SPX-compatible Protocol at Enum\Network\NWLINK
\0000, rc=0x0

The IPX/SPX-compatible protocol is added to the registry and bound to the network adapter.

ClassInstall (0x9) on Intel EtherExpress 16 or 16TP at Enum\Root\*PNP812D\0000

Clients are about to be bound to the network adapter.

Validating Client for Microsoft Networks at Enum\Network\VREDIR
\0000, rc=0x0

Client for Microsoft Networks is added to the registry and bound to the network adapter.

ClassInstall (0x9) end

Setup has finished binding the protocol to the network adapter.

ClassInstall (0xa) on Intel EtherExpress 16 or 16TP at Enum\Root\*PNP812D\0000

The network setup process is concluded.

ClassInstall (0xa) end

 

ClassInstall (0xc) on Intel EtherExpress 16 or 16TP at Enum\Root\*PNP812D\0000

 

ClassInstall (0xc) end

 

Top of pageTop of page

Windows 98 Startup Process

Windows 98 includes system files, Plug and Play mechanisms, and various options for starting the operating system. This section describes the Windows 98 system startup sequence.

During the real-mode startup process, devices use only static configurations; that is, no dynamic resource allocation or arbitration is provided. When the system startup process switches to protected mode, Configuration Manager ensures all devices are configured properly, as described in Chapter 28, "Windows 98 Architecture."

The system startup includes four phases:

Bootstrapping the system with basic input/output system (BIOS) in control. 

Loading MS-DOS drivers and terminate-and-stay-resident (TSR) Programs for compatibility. 

Initializing static VxDs in real mode. 

Putting the protected-mode operating system in control and loading the remaining VxDs. 

Bootstrapping in the BIOS Phase

Microsoft worked with several hardware manufacturers to define a new Plug and Play BIOS specification, which defines the interactions among a Plug and Play BIOS, Plug and Play devices, and option ROMs (sometimes called adapter ROMs). The Plug and Play BIOS enables and configures Plug and Play boot devices. The Plug and Play BIOS also passes configuration information to Configuration Manager in Windows 98 for configuring the remaining adapters and devices.

Booting with a Legacy BIOS

For legacy computers that do not have Plug and Play BIOS, the BIOS enables all devices on the ISA bus. A Plug and Play ISA card that has an option ROM must start up when the computer is turned on with the option ROM enabled.

Booting with a Plug and Play BIOS

A Plug and Play BIOS accesses nonvolatile random access memory (RAM) to determine which Plug and Play ISA cards should be enabled, where their option ROMs should be mapped, and what I/O, DMA, and other assignments are to be given to the cards.

The BIOS then programs the Plug and Play cards before the power-on self-test (POST). All cards that do not have configurations stored in the BIOS are disabled completely, reducing the chance of a conflict.

The Plug and Play BIOS also configures all devices on the motherboard. Some devices might have been disabled or assigned to different I/O addresses, IRQ settings, and so on, by Configuration Manager.

Loading Hardware Profiles and Real-mode Drivers

After BIOS initialization, the operating system attempts to determine the current configuration, including whether the computer is a docking station. This is done by using a hardware profile that Windows 98 selects before Config.sys is processed. The hardware profile is built by a detection process that collects information about interrupt usage, BIOS serial and parallel ports, BIOS computer identification, Plug and Play BIOS docking station data, and, if possible, docking station data that is unique to each original equipment manufacturer (OEM). Then the detection process builds a 2-byte value known as the current hardware profile (or the current configuration).

Each hardware profile has a name that matches a top-level menu item in a multiconfigured Config.sys file (that is, the long text in the menu, not the section name enclosed in square brackets). Windows 98 automatically selects that multiconfiguration menu item and processes the corresponding section of Config.sys.

Config.sys and Autoexec.bat are processed at this point. Although these files are not required for Windows 98, they are used for backward compatibility with applications created for MS-DOS or Windows 3.1x. In Windows 98, Config.sys and Autoexec.bat are processed much as they are processed under MS-DOS 6.x. Drivers and TSRs specified in these files are loaded in real mode.

For more information, see "System Startup Files" later in this chapter.

Note The real-mode MS-DOS errors are standard, as documented in the MS-DOS 6.0 Programmer's Reference. 

Initializing Static VxDs at Startup

Windows 98 supports static VxDs that load during system startup in the same way as Windows 3.x VxDs, and it also supports dynamically loaded VxDs. Vmm32.vxd includes the real-mode loader, the executable Virtual Machine Manager, and common static VxDs. Notice, however, that if a VxD file is in the \Windows\System\Vmm32 directory, Windows 98 loads it in addition to the combined VxDs in Vmm32.vxd.

Note If you want to update a VxD that has been bound into the monolithic Vmm32.vxd, place the VxD file in the System\Vmm32 directory. Windows 98 always checks that directory and uses any individual VxDs it finds instead of loading those bound in Vmm32.vxd.

The following list shows the VxDs typically combined to create Vmm32.vxd. (A custom list is built for each computer.) These drivers used to be specified in the [386enh] section of System.ini.

*biosxlat
*configmg
*dynapage
*ebios
*enable
*ifsmgr
*int13

*ios
*parity
*reboot
*vcache
*vcd
*vcomm
*vcond

*vdd
*vdef
*vfat
*vfbackup
*vflatd
*vkd
*vmcpd

*vmouse
*vmpoll
*vpd
*vsd
*vtdapi
*vwin32
*vxdldr

VMM32 loads VxDs in three steps:

VMM32 loads base drivers specified in the registry, which contains entries for every VxD not directly associated with any hardware. VxDs are located in the following branch of the registry: 

Hkey_Local_Machine \System \CurrentControlSet \Services \VxD

If VMM32 finds a value StaticVxD= in any registry key, it loads that VxD and runs its real-mode initialization. For example, the following entry loads *V86MMGR: 

SYSTEM\CurrentControlSet\Services\VxD\V86MemoryManger 
Description=MS-DOS Virtual 8086 Memory Manager 
Manufacturer=Microsoft 
StaticVxD=*V86MMGR 
EMMEXCLUDE=E000-EFFF 

VMM32 loads the static VxDs specified in the device=*VxD lines in the [386enh] section of System.ini. These VxDs are actually loaded from VMM32, and appear in System.ini only for backward compatibility. 

If a specific device conflicts with a device loaded from the registry, the device specified in System.ini takes precedence. However, if the device specified in System.ini cannot be found, an error occurs.

Many Windows 98 driver models, such as integrated office system (IOS) (for disk drivers) and the network, support dynamically loaded device drivers. These VxDs are not loaded by the VMM32 real-mode loader, but are loaded by a device loader that is responsible for loading and initializing the drivers at the correct time and in the correct order.

For example, for SCSI adapter miniport drivers, the device loader is *Ios. The entries for a SCSI adapter are found in the following registry key:

Hkey_Local_Machine \System \CurrentControlSet \Services \Class 

Because there is no StaticVxD=xxx line in this registry entry, the VMM32 real-mode loader does nothing when Windows 98 identifies this device.

Configuration Manager attempts to find any device node that has a DevLoader= entry in the registry. The device loader (in the previous example, *Ios) examines the registry, finds the PortDriver= entry, loads the driver and any associated support drivers, and initializes the adapter.

Loading the Protected-Mode Operating System at Startup

In the previous phase, the following elements of the operating system were loaded:

Win.com, which controls the initial checks and loading of the core Windows 98 components. 

Vmm32.vxd, which creates virtual machines and initiates VxD loading. 

System.ini, which is read for entries that differ from registry entries. 

After all static VxDs have been loaded, Vmm32.vxd switches the processor to operate in protected mode, and the last phase of the boot process begins. This phase involves loading the protected-mode components of the operating system.

Loading Protected-Mode VxDs at Startup

The protected-mode Configuration Manager is initialized for importing configuration information from a Plug and Play BIOS (if available); otherwise, it develops the Plug and Play hardware tree by enumerating devices and loading dynamically loadable device drivers. These device drivers are identified by loading drivers from a specific directory.

The next phase resolves device resource conflicts for every device in the tree and then informs the devices of their configuration. When all devices have been enumerated, all conflicts have been resolved, and all devices have been initialized, Windows 98 is ready to be used.

Loading the Final System Components at Startup

The remaining Windows 98 system components are loaded in the following sequence:

Kernel32.dll provides the main Windows components, and Krnl386.exe loads the Windows device drivers. 

Gdi.exe and Gdi32.exe provide the graphical device interface code. 

User.exe and User32.exe provide the user interface code. 

Associated resources, such as fonts, are loaded. 

Win.ini values are checked. 

The shell and desktop components are loaded. 

At this point, a prompt appears so that you can log on by typing a user name and a password. After you log on, Windows 98 can process user-specific configuration information. If you do not log on, default settings are used. If Windows 98 is configured for network logon, the unified Windows 98 logon can be used to log on to the network during this process.

After Windows 98 is loaded and you log on, the Startup directory is processed.

Top of pageTop of page

System Startup Files

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

Io.sys, the real-mode operating system that replaces the MS-DOS version; VMM32 and Windows 98 device drivers take control from Io.sys. 

Msdos.sys, which contains special information for Windows 98, is also created. This gives compatibility with applications that require Msdos.sys to be present before they can be installed. 

Config.sys and Autoexec.bat. 

System.ini and Win.ini. 

Bootlog.txt, the log file that describes the system startup processes. 

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 nameRenamed 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:

Himem.sys

Ifshlp.sys

Setver.exe 

Dblspace.bin or Drvspace.bin if Dlbspace.ini or Drvspace.ini exists in the root of the boot drive. 

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 

EntryDescription

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

Place an entry in Config.sys with the value you want. 

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

EntryDescription

[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 

CommandMeaning

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:

Updates the path= line statement. 

Uses rem to comment out incompatible TSRs. 

Deletes any win statement (or equivalent) and Share.exe. 

Copies the original Autoexec.bat to Autoexec.dos. 

Sets the Temp directory. 

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 

ChangeAffected entriesAffected 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:

Set all memory-related parameters by using the System option in Control Panel. For information, see Chapter 26, "Performance Tuning." 

Set parameters for hardware devices by using Device Manager in the System option in Control Panel. For information, see Chapter 24, "Device Management." 

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 

ChangeAffected entriesAffected 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:

Set all mouse parameters by using the Mouse option in Control Panel. For information, see Chapter 24, "Device Management." 

Set parameters for the keyboard by using the Keyboard option in Control Panel. For information, see Help. 

Set all screen and window display parameters by using the Display option in Control Panel. For information, see Chapter 24, "Device Management." 

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 errorsCorrective 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 entryDescription

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
Top of pageTop of page

Windows 98 Setup with Other Operating Systems

This section presents details related to installing Windows 98 over an existing operating system, including changes made to system files by Windows 98 Setup and configuring for dual-booting with the previous operating system.

Microsoft Windows 98 dual-boot is supported with Microsoft Windows NT, Windows 95 and MS DOS 5.x. Dual-boot with third-party operating systems, such as Novell DR DOS and IBM OS/2, is not supported. For more information on dual booting Windows 98 with a third-party operating system, you should contact your operating system vendor.

Table 5.13 summarizes some of the available options for upgrading with Windows 3.1x, MS-DOS, and Windows NT, and how you should install Windows 98 to take advantage of these options.

Table 5.13 Upgrade versus clean installations 

Desired configurationInstall Windows 98 in a new directoryUpgrade existing Windows 3.1x/95 installation with Windows 98

Migrate existing Windows application settings and files

 

Dual boot Windows 98 and MS-DOS

 

Dual boot Windows 98 and Windows NT1

 

1 Windows 98 and Windows NT can work together properly if the computer is configured for dual booting between MS-DOS and Windows NT. However, you must install Windows 98 in a new directory.

The topics discussed in this section include the following:

Upgrading Windows 95 to Windows 98 keeping your current configuration settings 

Upgrading Windows 95 to Windows 98 changing your current configuration settings 

Upgrading Windows 3.1x 

Dual booting Windows 98 with Windows 3.1x and MS-DOS 

Dual booting Windows 98 with Windows NT 

Upgrading from Windows 95 to Windows 98

There are two methods for upgrading from Windows 95 to Windows 98. The method you choose depends on whether you want to retain the existing configuration settings (such as computer name, installation directory, and network settings) on your computer.

Keeping Current Configuration Settings

If you have a computer running Windows 95 and you want to upgrade it to Windows 98, keeping its current configuration settings (such as computer name, user name, and installation directory), run the Windows 98 Setup program from within Windows 95. This is the recommended method for upgrading Windows 95 to Windows 98, because it requires minimum user interaction and is the easiest method.

With this method, Windows 98 is installed in the same directory where Windows 95 was installed. Furthermore, Windows 98 Setup uses the existing configuration information to set installation defaults and to set other configuration options. Windows 98 Setup migrates all Windows 95 folders and programs to Windows 98, so they appear on the Windows 98 Start menu. Windows 98 automatically migrates all the shortcuts you had under Windows 95.

To upgrade Windows 95 to Windows 98 keeping current settings

1.

Start Windows 95. 

2.

Close all programs, including any anti-virus programs. 

For information about closing an anti-virus program, see the program documentation and Setup.txt on your Windows 98 disk. 

3.

If you are installing Windows 98 from a compact disc, insert the Windows 98 compact disc into your CD-ROM drive. 

– Or – 

If you are installing Windows 98 from floppy disks, insert Setup Disk 1 into the floppy disk drive. 

– Or – 

If you are installing Windows 98 from source files on a network server, connect to that server and switch to the shared network directory that contains the Windows 98 source files. 

4.

On the Start menu, click Run

The Run dialog box appears. 

5.

In the Open box, enter the location of the Windows 98 disc. For example, type the drive letter, followed by a colon (:), a backslash (\), and the word setup. For example: d:\setup

6.

Click OK

The Windows 98 Setup Wizard starts. 

7.

Follow the on-screen instructions, as described in "Running Setup from the Windows 95 Interface" in Chapter 2, "Setting Up Windows 98." 

Changing Current Configuration Settings

If you want to upgrade your Windows 95 computer to Windows 98 but you want to change its current configuration settings (such as computer name and workgroup) or you want to install Windows 98 in a new directory, you run the Windows 98 Setup program from within MS-DOS.

Before you begin, you should be prepared to provide the following information:

Name of the installation directory (for example, c:\Win98). 

If you do not know the directory in which to install Windows 98, you can use Setup to create a new one. When prompted, type a new directory name. 

Network information, such as your computer name, workgroup, and computer description (if your computer is on a network). 

When starting Setup from MS-DOS using either a network server or local CD-ROM drive, the real-mode network or CD-ROM drivers must be loaded. If the real-mode network drivers are running when you start Windows 98 Setup, the appropriate network client is installed automatically. Setup detects existing network components, installs the appropriate supporting software automatically, and adds the necessary network settings in the registry.

To upgrade Windows 95 to Windows 98 changing current settings

1.

Start your computer up and press F8 when the message, Starting Windows 95 appears. Then select Command Prompt Only. 

-Or- 

From Windows 95, click on Start, and click Shut Down. Then select Restart in MS-DOS mode

2.

If you are installing Windows 98 from a compact disc, insert the Windows 98 compact disc into the CD-ROM drive, and make it the active drive. 

– Or – 

If you are installing Windows 98 from floppy disks, insert Setup Disk 1 into the floppy disk drive and make it the active drive. For example, type a: if the disk is in the A drive. 

– Or – 

If you are installing Windows 98 from source files on a network server, connect to that server and switch to the shared network directory that contains the Windows 98 source files. 

3.

At the command prompt, type the drive letter, followed by a colon (:), a backslash (\), and the word setup. For example: 

d:\setup 

4.

Press ENTER. 

Setup quickly scans your computer, and then the Windows 98 Setup Wizard starts. 

5.

Follow the on-screen instructions, as described in "Running Setup from MS-DOS" in Chapter 2, "Setting Up Windows 98." 

After starting Setup from MS-DOS, Setup initializes and checks your system:

It runs real-mode ScanDisk to check the hard disk for errors. Unlike the protected-mode version of ScanDisk, the real-mode counterpart cannot fix errors in long file names. ScanDisk does not perform a surface scan; therefore, the disk is not checked for physical errors. 

Note If you get file system errors during setup, you should run ScanDisk and perform a surface scan before running Setup again. 

It initializes the registry and checks it for corruption.

Tip When you run Windows 98 Setup, ScanDisk performs a quick check of the hard disk. You can skip this quick check (for example, if the computer uses disk compression software from another vendor) by using the /iq or /is switch with the setup command, as described in "Using the Setup Command-Line Switches" in Chapter 2, "Setting Up Windows 98." If you choose to skip automatically running ScanDisk, be sure to use another utility to check the integrity of the hard disk before running Setup.

Upgrading Windows 3.1x or Windows for Workgroups to Windows 98

If you have a computer running Windows 3.1x or Windows for Workgroups, you can upgrade it to Windows 98 by running the Windows 98 Setup program from within Windows 3.1x or Windows for Workgroups.

Most of the information needed for upgrading is automatically taken from your current installation of Windows 3.1x. Setup automatically identifies and transfers your current system settings and installed programs. Windows 98 Setup also saves settings so that you can continue to use the network configuration that you had previously.

To upgrade from Windows 3.1x or Windows for Workgroups to Windows 98

1.

Start Windows 3.1 or Windows for Workgroups. 

2.

Close all programs, including any anti-virus programs. 

For information about closing an anti-virus program, see the program documentation and Setup.txt on your Windows 98 compact disc. 

3.

If you are installing Windows 98 from a compact disc, insert the Windows 98 compact disc into the CD-ROM drive and make it the active drive. 

– Or – 

If you are installing Windows 98 from floppy disks, insert Setup Disk 1 into the floppy disk drive and make it the active drive. For example, type a: if the disk is in the A drive. 

– Or – 

If you are installing Windows 98 from source files on a network server, connect to that server and switch to the shared network directory that contains the Windows 98 source files. 

4.

In File Manager, select the disk drive you used in step 3. 

5.

On the File menu, click Run

The Run dialog box appears. 

6.

In the Open box, enter the location of the Windows 98 compact disc. For example, type the drive letter, followed by a colon (:), a backslash (\), and the word setup (or, you can click Browse and browse to the Setup.exe file). 

7.

Click OK

The Windows 98 Setup Wizard starts. 

8.

Follow the instructions on your screen. 

Dual Booting Windows 98 with Windows 3.1x and MS-DOS

You can configure your computer to dual boot with Windows 3.1x as long as the computer has MS-DOS 5.0 or later by using the F4 boot-to-previous operating system feature. To dual boot Windows 98 with these operating systems, your computer's C drive must be FAT 16.

For more information about how Windows 98 Setup treats disk partitions created under other operating systems, see "Partition Requirements" in Chapter 2, "Setting Up Windows 98."

Important To take advantage of the Windows 98 dual-boot capabilities, the entry BootMulti=1 must be set in the Windows 98 Msdos.sys file in the root directory. For more information, see "Msdos.sys: Special Startup Values" earlier in this chapter.

To set up dual-boot capabilities for a new installation of Windows 98

During Windows 98 Setup, when you are installing Windows 98 for the first time, make sure you specify a new directory that does not already have another version of Windows in it.

Windows 98 Setup makes all of the necessary changes to preserve your existing version of MS-DOS, Windows 3.1x, or Windows for Workgroups 3.1x, and your current Autoexec.bat and Config.sys files.

If you have already installed Windows 98 without dual-boot capabilities, you can follow these steps to allow MS-DOS to dual boot with Windows 98. However, you will not be able to dual boot with your previous version of Windows.

To set up dual-boot capabilities after Windows 98 has been installed

1.

On a bootable floppy disk that starts MS-DOS 5.0 or later, rename the Io.sys, Msdos.sys, and Command.com files on the disk to Io.dos, Msdos.dos, and Command.dos.

2.

Create two empty text files named Config.dos and Autoexec.dos. You can customize these now or later to be appropriate for the MS-DOS version you will be adding. 

Caution You must rename the MS-DOS versions of these files before copying them to the root directory. Otherwise, you will destroy your Windows 98 installation. 

3.

Copy all the .dos files to the root directory of the boot drive. This is usually drive C. Make duplicates of these files on your host drive if you want to use disk compression. 

4.

Mark the .dos files in the root directory of the boot drive with the hidden, system, and read-only attributes (attrib -r -s -h *.dos). 

5.

Change the Msdos.sys on the boot drive to include the line bootmulti=1. Instructions for making changes to Msdos.sys can be found earlier in this chapter. 

Installing Windows 98 over MS-DOS

The versions of MS-DOS supported for installing Windows 98 are versions 5.0 or later.

Tip for Running MS-DOS After Windows 98 Is Installed

If you install Windows 98 in a different directory from the one containing your previous Windows 3.1x version, you can start the computer by using the previous version of MS-DOS. To do this, make sure the entry BootMulti=1 is in the Windows 98 Msdos.sys file, and then press CTRL during system startup and choose the related option.

Files Deleted by Windows 98 Setup

This section lists MS-DOS and other files that are deleted by Windows 98 Setup. Notice, however, that these files are deleted from the old MS-DOS directory only if you install Windows 98 in the existing Windows 3.1x directory. Otherwise, the old MS-DOS files are all preserved so that you can start the computer using the older version of MS-DOS.

The Windows 98 command-line commands are stored in the Command subdirectory of the Windows directory. Deleting the related MS-DOS command file will not affect your ability to use the command under Windows 98. The versions that are deleted by Setup are known to be incompatible with Windows 98; for example, many of these MS-DOS commands do not support long file names. Table 5.14 shows files removed by Windows 98 Setup.

Table 5.14 Files removed by Windows 98 Setup 

MS-DOS and Windows 3.1x files   

Ansi.sys
Attrib.exe
Chkdsk.exe
Choice.exe
Country.sys
Debug.exe
Defrag.exe
Deltree.exe
Diskcopy.exe
Display.sys
Doskey.com
D??space.bin1

D??space.exe1
D??space.sys1
Edit.com
Edit.hlp
Ega.cpi
Emm386.exe
Fc.exe
Fdisk.exe
Find.exe
Format.com
Help.com
Help.hlp

Keyb.com
Keyboard.sys
Label.exe
Mem.exe
Mode.exe
More.com
Move.com
Mscdex.exe
Msd.exe
Networks.txt
Nlsfunc.exe
Os2.txt

Ramdrive.sys
Readme.txt
Scandisk.exe
Scandisk.ini
Setver.exe
Share.exe
Smartdrv.exe
Sort.exe
Start.exe
Subst.exe
Sys.com
Xcopy.exe

COMPAQ DOS 5.0 files   

Cache.exe
Cemm.exe
Cemmp.exe

Dos5help.chd
Fastart.exe

Fsedit.exe
Help.exe

Tu.exe
Upcu.exe

Non-MS-DOS operating system files   

Delpurge.exe
Delwatch.exe
Diskmap.exe
Diskopt.exe
Dosbook.exe

Hidos.sys
Lock.exe
Login.exe
Memmax.exe
Password.exe

Rendir.exe
Setup.exe
Sys.com
Taskmax.exe
Taskmax.ini

Touch.exe
Uninstal.exe
Xdel.exe
Xdir.exe

Pre-MS-DOS 5.0 files   

Append.com
Asgnpart.com
Backup.exe
Bootf.com
Cache.sys
Cemm.exe
Cemmp.exe
Chkdsk.exe
Cmpqadap.com
Compact.exe
Configur.com
Debug.exe
Detect.com
Diskcomp.exe
Diskcopy.exe
Diskinit.com
Diskinit.exe
Dosutil.meu
Dskscan.exe
Dsksetup.com
Edlin.exe
Emm386.sys

Enhdisk.sys
Fastopen.exe
Fastart.exe
Fdisk.com
Filesys.exe
For150.exe
Format.exe
Gdu.exe
Graftabl.exe
Graphics.exe
Hardrive.sys
Hpcache.com
Hpdcache.com
ifsfunc.exe
IndskbIo.sys
Install.exe
Keyb32.com
Keybchf.com
Keybchg.com
Keybda.com
Keybfr.com

Keybfr.exe
Keybgk.com
Keybgr.com
Keybgr.exe
Keybit.com
Keybit.exe
Keybno.com
Keybsp.com
Keybsv.exe
Keybsw.com
Keybuk.com
Keybuk.exe
Keybus.com
Label.exe
Mode.exe
Mvbuild.exe
Pamcode.com
Paminstl.com
Part.exe
Password.exe
Prep.exe

Print.exe
Recover.exe
Restore.exe
Select.com
Select.dat
Select.exe
Select.hlp
Select.prt
Select1.dat
Select2.dat
Setup.exe
Shell.clr
Shell.hlp
Shell.meu
Shellb.com
Shellc.exe
Tree.exe
Vdisk.sys
Xmaem.sys
Zcache.sys
Zspool.com

Drvspace.* or Dblspace.*

System Startup with MS-DOS Multiple Configurations

Windows 98 supports multiple configurations for the same computer, and it dynamically determines which configuration is being used. If Windows 98 cannot determine the specific configuration used during system startup before processing Config.sys, it presents a menu of available configurations as listed in the registry, and it prompts you to select the configuration you want.

If you have a multiple configuration established in Config.sys, that menu is presented next. However, if you use a multiple configuration to switch between different versions of Windows, you must edit Config.sys manually to repair this configuration after Windows 98 is installed. For information about how to create multiple configurations for the same computer under Windows 98, see Chapter 24, "Device Management."

Dual Booting Windows 98 with Windows NT

If you install Windows 98 to dual boot with Windows NT, boot to MS-DOS, and then run Setup from either MS-DOS or Windows 3.1x. You will not be able to install Windows 98 to a directory with a shared Windows 3.1x/Windows NT configuration; you will need to install Windows 98 in a different directory.

You can install Windows 98 to dual boot with Windows NT on a computer. This section provides some notes for installing Windows 98 with Windows NT.

Important In order to take advantage of the Windows 98 dual-boot capabilities, the entry BootMulti=1 must be set in the Windows 98 Msdos.sys file in the root directory. For more information, see "Msdos.sys: Special Startup Values" earlier in this chapter.

To install Windows 98 to dual boot with Windows NT

1.

Ensure that the computer is configured to dual boot between Windows NT and MS-DOS. Check your Windows NT documentation for details. 

2.

Start the computer by using the MS-DOS operating system. 

3.

Run Windows 98 Setup as described in Chapter 2, "Setting Up Windows 98." 

Remember that if your computer has any Windows NT file system (NTFS) partitions, they are not available locally from within Windows 98.

If you run MS-DOS from a floppy disk in order to install Windows 98, you will not be able to start Windows NT afterward. You can restore the multiboot configuration by starting the computer with your Windows NT Boot Disks and selecting the Repair option. You will then be prompted for your Windows NT Repair Disk.

To run MS-DOS after Windows 98 has been installed, you must select the MS-DOS option from the Windows NT multiboot menu. Then, from the Windows 98 Startup menu, select Previous Version of MS-DOS.

To install Windows NT on a computer where Windows 98 is installed

At the command prompt, switch to the directory that contains the Windows NT source files, and then type winnt /w

The WINNT program is an MS-DOS -based application that creates the Windows NT Setup startup files and copies the system files to the hard disk from the source files. The /w switch allows WINNT to run under Windows. Using this switch also causes Windows NT Setup to skip the CPU detection process and the automatic restart at the end of Setup. You can also include the /b switch to copy the required startup files for Setup so that you do not have to create floppy disks for Setup.

For more information about the Windows NT operating system and about running computers with Windows 98 on a Windows NT network, see Chapter 16, "Windows 98 on Microsoft Networks."

Top of pageTop of page

Using a Windows 98 Startup Disk

This section describes the Windows 98 Startup Disk. You should make a Startup Disk and keep it on hand to help you boot your computer when you are having problems.

What Is New in the Startup Disk

The Startup Disk has changed significantly for Windows 98. The following items have been added:

The Microsoft Windows 98 Startup Menu 

Real-Mode IDE CD-ROM support 

Real-Mode SCSI CD-ROM support 

Edb.cab file 

RAMDrive 

New extract command: Ext.exe 

For a complete list of the contents of the Windows 98 Startup Disk, see "Contents of the Windows 98 Startup Disk" in Appendix B, "Windows 98 System File Details."

The MS Windows 98 Startup Menu

If you boot the computer using the Startup Disk, a boot menu appears allowing you to start the computer with or without CD-ROM support. The drivers on the Startup Disk support a variety of ATAPI CD-ROM drives. An example of the menu is shown below.

Microsoft Windows 98 Startup Menu 
1. Start the computer with CD-ROM support. 
2. Start the computer without CD-ROM support. 
3. View the Help file. 
Enter a choice: 1 Time remaining: 30 

If you use the Startup Disk to boot the computer and choose to load the real-mode CD-ROM drivers, but cannot access a compact disc in the drive, it is likely that the CD-ROM is connected to a sound card. The CD-ROM must be connected to the controller on the motherboard.

After you make your selection, the Config.sys file loads the CD-ROM driver (if selected) and then loads a 2-MB RAMDrive.

The Autoexec.bat file calls a second batch file, Setram.bat, to find a drive letter for the RAMDrive. The temp variables, path and comspec, are set to the RAMDrive. The files Command.com, Mode.com, Keybrd?.sys, and Keyb.com are copied to the RAMDrive root directory.

The following line in the Autoexec.bat file expands the files to the RAMDrive:

%RAMD%\extract /y /e /l %RAMD% edb.cab > NUL 

Finally, if a CD-ROM driver is loaded, MSCDEX is launched.

CD-ROM Support

Real-Mode IDE CD-ROM Support

The Windows 98 Startup Disk includes a real-mode generic ATAPI CD-ROM driver (Oakcdrom.sys) that allows the CD-ROM to function when the protected mode of the GUI interface is not available. This occurs when booting into either MS-DOS or Windows fails to boot into the GUI. Although CD-ROM manufacturers accompany CD-ROM drives with a floppy disk with the specific drivers to use, they may or may not be available when needed most.

Real-Mode SCSI CD-ROM Support

Real-mode generic SCSI CD-ROM drivers are also supported (Mylex Btdcrom.sys and Adaptec Aspicd.sys) to allow a SCSI CD-ROM to function when booting into MS-DOS.

RAMDrive

The RAMDrive created from the Config.sys file is 2 MB in size. Keep in mind that the tmp path points to this location. After the files are expanded and placed here, there is only about 1.384 MB of space available.

Warning The RAMDrive is created during the processing of the Config.sys file. Drive letter assignment for a CD-ROM is not performed until MSCDEX is loaded in the Autoexec.bat file. Therefore, customers who normally boot without a RAMDrive will find their CD-ROM drive moved one letter back.

Extract Command (Ext)

The Ext.exe command is a new and simple extract command designed to work with Extract.exe. You type ext at a command prompt. Ext.exe detects if the Win98 CDROM is in the drive and defaults to that directory for its source location. If it is not available, it defaults to A:\. Otherwise, you are asked to enter the path to the Windows CAB files.

You then enter the name(s) of the file(s) you want to extract and enter the path to the directory to extract the files to. The CAB files scroll up the screen until the file is found. A sample of the display is shown below.

Microsoft (R) Extract Command Line Helper 
---------------------------------------------------------------------- 
Please enter the path to the Windows CAB files (a:) : d:\Win98 
Please enter the name(s) of the file(s) you want to extract: 
explorer.exe 
Please enter the path to extract to ("Enter" for current directory) C:\Windows 
The Options you entered were: 
------------------------------------------------ 
Source Path : d:\Win98 
File(s) to extract : explorer.exe 
Destination Path : C:\Windows 
Is this okay? (y/n) : 

Note It takes a long time to expand the file (a 60-KB file expands in 77 seconds on an Intel 266MMX Pentium machine).

Ext Error Messages

You might have to reset the TMP variable for large files, because it points to the RAMDrive and there is a limited amount of free space available. Use the command Set TMP=C:\. Because EXT uses TMP, resetting the TEMP variable does not work. If you do not reset the TMP variable, you may get the following error message:

"Error: Out of memory while processing cabinet file Win98_41.cab" 

Tip If you receive an error "Unable to write to disk" or "Disk initialization error" when creating a Startup Disk, the disk may be defective. Insert a different disk and start again.

Starting Your Computer with the Startup Disk

Follow the following procedure to start your computer with the Startup Disk.

To start your computer with the Startup Disk

1.

Insert the disk in the floppy drive of your computer and turn the computer on. 

2.

After a few moments, you see the "Microsoft Windows 98 Startup Menu" screen. Three menu items are offered. 

3.

If you need to access the CD-ROM, for example, to restart Setup or to use the troubleshooting tools, select Start the computer with CD-ROM support

4.

If you do not want to access the CD-ROM (for example, if you need to save memory or you are running Setup from the hard drive of the machine) select Start the computer without CD-ROM support

5.

You can also select View the Help file for more information about the Startup Disk. 

For more information on setup problems and the Windows 98 Startup Disk, see "Troubleshooting Setup" later in this chapter.

Note The generic CD-ROM drivers may not work with all CD-ROM hardware. If these drivers do not function with your hardware, you will have to use the drivers that shipped with your CD-ROM.

Top of pageTop of page

Removing Windows 98 from a Computer

You can uninstall Windows 98 as long as your current configuration satisfies the following conditions:

You clicked Yes (recommended) on the Save System Files? dialog box that appeared when you installed Windows 98 the first time. If you clicked Yes, two files containing the saved Windows 95 system files, Winundo.dat and Winundo.ini, were created in the root directory of the partition that you designated during Setup. 

The system boot partition or any partition on the same physical drive where Winundo.dat is located was not compressed when you installed, and you did not compress it after installing Windows 98. 

You did not convert any file systems to FAT32, unless your Windows 95 version is OSR2. 

Note The retail and OSR1 versions of Windows 95 cannot read FAT32 drives.

Windows 98 can be removed from a computer by using the procedures described below. If the computer is configured for dual booting, you will be left with the previous versions of MS-DOS and Windows 3.1x intact. The recommended method for removing Windows 98 is to start the computer and use the F8 key to go to a command line, as described in the following procedure. When you do this, real-mode Windows 98 operating system files start the computer. If you encounter problems starting Windows 98 in this way, start your computer from the previous operating system (which might require usin