MS-DOS 6.22 Volume Boot Record Guide

This article examines the MS-DOS 6.22 boot process, clarifying the physical storage of the Volume Boot Record (VBR), the relationship between raw disk sectors and filesystem files, and the specific system files loaded during startup.

The Volume Boot Record is Not a File

In MS-DOS 6.22, the Volume Boot Record is not stored inside a filesystem file. Instead, it resides in the very first sector (Logical Sector 0) of the formatted FAT16 or FAT12 partition. Because the computer's firmware (BIOS) and Master Boot Record (MBR) have no native understanding of directory tables or file allocation tables (FAT), the boot instructions must exist at a predetermined, fixed physical location on the disk rather than within the filesystem hierarchy.

The code contained in the VBR is written directly to the partition's boot sector during volume preparation by utilities such as FORMAT.COM (using the /S switch) or SYS.COM.

The Boot Sequence and the First Loaded File: IO.SYS

While the VBR itself is raw sector code, its primary responsibility is to locate, load, and execute the first actual system file from the disk. In MS-DOS 6.22, this file is IO.SYS.

  1. BIOS Initialization: The BIOS executes the Power-On Self-Test (POST) and loads the Master Boot Record from cylinder 0, head 0, sector 1 of the boot drive.
  2. MBR Execution: The MBR scans the partition table, identifies the active (bootable) partition, and loads the Volume Boot Record from the beginning of that partition into memory address 0000:7C00h.
  3. VBR Execution: The machine code inside the VBR reads the disk parameter block (BPB), searches the root directory of the FAT partition for the initial startup file, and reads it into memory.
  4. Loading IO.SYS: The VBR loads the first sectors of IO.SYS into memory and transfers execution to it. In MS-DOS 6.22, IO.SYS must occupy contiguous clusters starting at the very beginning of the partition's data area.

Core MS-DOS 6.22 Startup Files

Once the VBR successfully hands control to IO.SYS, the remaining MS-DOS operating system components load in a defined sequence:

  • IO.SYS: Contains the hardware interface routines and low-level device drivers. It initializes hardware interfaces and prepares memory.
  • MSDOS.SYS: Loaded directly by IO.SYS. In version 6.22, this is a binary file containing the core DOS kernel, which handles file management, memory allocation, and system API calls (Interrupt 21h).
  • CONFIG.SYS: A plain text configuration file processed by the kernel to load third-party device drivers (.SYS) and set system parameters.
  • COMMAND.COM: The default command processor and shell loaded into memory to interpret user commands and execute AUTOEXEC.BAT.