An IBM PC boots from a disk by loading its first sector and executing the code in it. For a hard disk, this first sector usually contains a table of partitions present on the disk. The first sector of a disk containing such a table is called the Master Boot Record (MBR).
The code present in the MBR will typically examine the partition table, find the partition that is marked active, and boot from it. Booting from a partition simply means loading the first sector in that partition, and executing the code in it, as is done for the MBR itself.
NetBSD supplies serveral versions of the MBR bootcode:
Normal boot code /usr/mdec/mbr
This version has the same functionality as that supplied by DOS/Windows and other operating systems: it picks the active partition and boots from it. Its advantage over other, older MBRs, is that it can detect and use extensions to the BIOS interface that will allow it to boot partitions that cross or start beyond the 8 Gigabyte boundary.
Bootselector /usr/mdec/mbr_bootsel
The bootselecting MBR contains configurable code that will present the user with a simple menu, allowing a choice between partitions to boot from, and hard disks to boot from. The choices and default settings can be configured through
fdisk(8).
Extended Bootselector /usr/mdec/mbr_ext
The Extended Bootselecting MBR additionally allows NetBSD to be loaded from an Extended partition. It only supports systems whose BIOS supports the extensions to boot partitions beyond the 8 Gigabyte boundary.
Serial Bootselector /usr/mdec/mbr_com0
This has the same features as mbr_ext but will read and write from the first serial port. It assumes that the BIOS has initialised the baud rate.
Serial Bootselector /usr/mdec/mbr_com0_9600
This has the same features as mbr_com0. Additionally it initialises the serial port to 9600 baud.
The rest of this manual page will discuss the bootselecting versions of the MBR. The configurable items of the bootselector are:
timeout
The number of seconds that the bootcode will wait for the user to press a key, selecting a menu item. Must be in the range 0-3600, or -1 when it will wait forever.
default
The default partition or disk to boot from, should the timeout expire.
The bootselector will output a menu of the
bootmenu names for each partition (as configured by
fdisk(8)). The user can then select the partition or drive to boot from via the keyboard.
The numeric keys
1 upwards will initiate a startup from the corresponding partition.
Function keys
F1 through
F8 (keys
a through
h for the serial versions) will boot from harddisks 0 through 7 (BIOS numbers 0x80 through 0x87). Booting from a drive is simply done by reading the MBR of that drive and executing it, so the bootcode present in the MBR of the chosen drive determines which partition (if any) will be booted in the end.
The
Enter key will cause the bootcode to find the active partition, and boot from it. If no key is pressed, the (configurable) default selection is picked.