1999-05-02 16:18:40 +04:00
|
|
|
.\" $NetBSD: mbr.8,v 1.3 1999/05/02 12:18:40 fvdl Exp $
|
1999-04-16 02:35:19 +04:00
|
|
|
.Dd April 13, 1999
|
|
|
|
.Dt MBR 8 i386
|
|
|
|
.Os
|
|
|
|
.Sh NAME
|
|
|
|
.Nm mbr ,
|
|
|
|
.Nm bootselect
|
|
|
|
.Nd
|
|
|
|
Master Boot Record bootcode
|
|
|
|
.Sh DESCRIPTION
|
|
|
|
A 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.
|
|
|
|
.Pp
|
|
|
|
NetBSD supplies its two versions of the bootcode in an MBR:
|
|
|
|
.Bl -tag -width Er
|
|
|
|
.It Sy Normal boot code
|
|
|
|
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.
|
|
|
|
.It Sy Bootselector
|
|
|
|
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).
|
|
|
|
.El
|
|
|
|
.Pp
|
|
|
|
The rest of this manual page will discuss the bootselecting version of
|
|
|
|
the MBR. The configurable items of the bootselector are:
|
|
|
|
.Bl -tag -width Er
|
|
|
|
.It 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.
|
|
|
|
.It default
|
|
|
|
The default partition or disk to boot from, should the timeout
|
|
|
|
expire.
|
|
|
|
|
|
|
|
.It active
|
|
|
|
Activate/deactivate the bootselector. When deactivated, the
|
|
|
|
bootcode will pick the first active partition, as usual.
|
|
|
|
.El
|
|
|
|
|
|
|
|
.Pp
|
|
|
|
When active, the bootselector will let the user select the partition
|
|
|
|
or drive to boot from via the keyboard. Keys F1 through F4 will
|
|
|
|
initiate a startup from partitions 1 through 4 in the partition table,
|
|
|
|
if the corresponding entries in the bootselector menu are active.
|
|
|
|
.Pp
|
|
|
|
Keys F5 through F10 will boot from harddisks 0 through 5 (BIOS numbers
|
|
|
|
0x80 through 0x85). 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.
|
|
|
|
.Pp
|
|
|
|
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.
|
|
|
|
|
|
|
|
.Sh DIAGNOSTIC
|
1999-05-02 16:18:40 +04:00
|
|
|
The following error numbers may be printed in case of an error condition,
|
1999-04-16 02:35:19 +04:00
|
|
|
(after which the user must restart the system):
|
|
|
|
.Bl -tag -width Er
|
1999-05-02 16:18:40 +04:00
|
|
|
.It 1
|
1999-04-16 02:35:19 +04:00
|
|
|
Invalid partition table. The MBR has a partition table without an
|
|
|
|
active partition.
|
1999-05-02 16:18:40 +04:00
|
|
|
.It 2
|
1999-04-16 02:35:19 +04:00
|
|
|
Read error. There was an error reading the bootsector for the
|
|
|
|
partition or drive selected.
|
1999-05-02 16:18:40 +04:00
|
|
|
.It 3
|
1999-04-16 02:35:19 +04:00
|
|
|
No operating system. The bootsector was loaded successfully, but
|
|
|
|
it was not valid (i.e. the magic number check failed).
|
|
|
|
.El
|
|
|
|
|
|
|
|
.Sh SEE ALSO
|
|
|
|
.Xr fdisk 8
|
|
|
|
.Sh BUGS
|
|
|
|
The bootselect code has constraints because of the limited amount of
|
|
|
|
space available. The only way to be absolutely sure that a bootselector
|
|
|
|
will always fit on the disk when a partition table is used, is to make
|
|
|
|
it small enough to fit into the first sector (512 bytes, 446 not counting
|
|
|
|
the partition table itself). The error messages are short. The code
|
|
|
|
will give up if an error occurs, it should allow the user to, for example,
|
|
|
|
specify another partition/disk instead.
|