x86 BIOS Boot Loader

The x86 BIOS boot loader (biosloader) is an alternative to romboot. Unlike romboot, biosloader does not replace the system BIOS. Rather, it uses the BIOS services like the VESA BIOS for video display control and INT 13h services for disk I/O to load an image from a local storage device. It will load a BIN image from any device that the BIOS exposes INT 13h support for and views as a storage device. This currently includes floppy, hard disk, Compact Flash (CF), and Disk-On-Chip. The boot loader resides on the bootable storage device and is found and loaded by a boot sector image.

The following list summarizes the BIOS boot loader boot process:

  • At power-on or reset, the x86 CPU jumps to the CPU reset vector address and starts to execute BIOS code. The BIOS will typically configure the hardware, which includes configuring the DRAM controller, configuring the host bridge, and enumerating PCI devices, and then locate a boot drive.
  • If the boot drive is a fixed disk—for example, hard disk, Compact Flash card, or Disk-On-Chip—the first disk sector will be the master boot sector (MBR). If the boot drive is a floppy disk, then it does not contain an MBR, instead, the first sector on the disk is a boot sector. The MBR neatly fits in one disk sector and is made up of code, 16-bit real mode code, and data. The MBR is written to the disk by a partitioning tool like the MS-DOS fdisk program. The MBR is loaded from the disk into RAM by the BIOS, and then the BIOS will begin to execute the MBR code. If the BIOS cannot locate the MBR on the boot drive, which looks for a two-byte signature at the end of the sector, it displays an error message and halts.
  • The MBR code primarily searches through the partition table looking for the active partition on the boot disk. The partition table is data that resides in the MBR. If the MBR code is unable to locate an active partition, it displays an error message and halts. If it does find an active partition, it determines the disk address of that partition. The first sector in the partition is called the boot sector. However, on a floppy disk, this is the first sector on the disk because there is no MBR on a floppy disk. The MBR code loads the boot sector into RAM and jumps to it.
  • The boot sector, like the MBR, contains both code and data and fits neatly within a single disk sector. The boot sector is the first piece of OS-specific code. The boot sector's task is to find and load the BIOS boot loader. It does this by using the disk-resident properties of the native file system, along with BIOS services, to find and load the boot loader into RAM and then jump to it.
  • Once running, the BIOS loader proceeds.

In order to prepare a storage device for use with the BIOS boot loader, you must partition and format it.

For more information about the BIOS boot loader and its functionalities, see the following topics:

See Also

Specialized Boot Loaders

Last updated on Wednesday, April 13, 2005

© 2005 Microsoft Corporation. All rights reserved.