How Windows 98 Assigned Drive Letters

Microsoft Windows 98 managed drive letter assignments using a hybrid approach rooted in MS-DOS partition conventions, supplemented by protected-mode drivers and graphical device management. Because Windows 98 still relied on underlying MS-DOS architecture during the boot phase, drive letter assignment followed a rigid, predetermined hierarchy for fixed disks, while allowing limited manual reassignments for optical, removable, and network drives.

The Boot Hierarchy and Hard Disk Enumeration

When Windows 98 initialized, the system scanned physical disks according to standard MS-DOS partition rules rather than treating every partition sequentially on a single disk:

  1. Floppy Drives: Drive letters A: and B: were strictly reserved for floppy disk drives. If only one physical floppy drive was present, Windows assigned A: to it and reserved B: for a virtual disk interface.
  2. Primary Partitions: The system scanned the Master Boot Record (MBR) of the primary physical hard disk and assigned C: to its primary active partition. It then continued across all subsequent physical hard drives, assigning the next sequential letters (D:, E:, etc.) to their primary partitions.
  3. Logical Drives in Extended Partitions: After enumerating all primary partitions across all physical drives, Windows 98 returned to the first physical hard drive to assign letters sequentially to any logical drives inside its extended partition. It then proceeded to assign letters to extended partition logical drives on the second physical drive, third drive, and so on.

Because this ordering was hardcoded into the DOS/Windows boot routine, adding a new physical hard disk with a primary partition would shift existing logical drive letters on the primary disk. This frequently broke application shortcuts and system paths that pointed to specific drive letters.

Removable Storage and Optical Drives

After allocating letters to all detected hard disk partitions, Windows 98 assigned letters to optical drives (such as CD-ROM and DVD-ROM drives) and removable storage devices (such as Iomega Zip drives or early USB flash drives).

These devices were assigned the next available alphabetical letters in the order their drivers loaded. For older ATAPI CD-ROM drives using real-mode DOS drivers, the order was determined by MSCDEX.EXE in AUTOEXEC.BAT. For devices using 32-bit protected-mode drivers (such as the Windows 98 native ESDI_506.PDR or third-party USB drivers in Windows 98 Second Edition), Windows assigned the next free letter upon driver initialization.

Manual Configuration via Device Manager

Windows 98 did not include the dynamic "Disk Management" console found in modern Windows versions, meaning physical hard drive letters could not be manually changed without repartitioning with FDISK. However, Windows 98 did provide manual control for non-fixed drives via Device Manager:

  1. Users opened the System control panel and selected the Device Manager tab.
  2. Under the properties of a CD-ROM drive, removable drive, or SCSI device, users navigated to the Settings tab.
  3. Under the Reserved drive letters section, users could designate a specific range using the Start drive letter and End drive letter drop-down menus.

Setting these fields forced the device to occupy a specific letter (such as R: for removable media or Z: for optical drives), preventing new hard disk partitions from shifting the drive letter of CD-ROM drives.

Network Drives

Network shares mapped using Microsoft Client for NetWare or Microsoft Client for Microsoft Networks were assigned letters dynamically by the user. Administrators or users could pick any unassigned letter from the remainder of the alphabet, typically selecting letters near the end of the alphabet (such as Z:, Y:, or X:) to avoid conflicts with locally added physical devices.