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.
- 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.
- 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. - 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.
- Loading IO.SYS: The VBR loads the first sectors of
IO.SYSinto memory and transfers execution to it. In MS-DOS 6.22,IO.SYSmust 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.