NetBSD/sbin/fdisk/mbr/mbr.8

92 lines
3.6 KiB
Groff

.\" $NetBSD: mbr.8,v 1.4 2000/11/07 05:40:17 lukem Exp $
.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
.Xr 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
The following error numbers may be printed in case of an error condition,
(after which the user must restart the system):
.Bl -tag -width Er
.It 1
Invalid partition table. The MBR has a partition table without an
active partition.
.It 2
Read error. There was an error reading the bootsector for the
partition or drive selected.
.It 3
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.