Expand description of how gptboot and gptzfsboot choose a partition for

booting.

Reviewed by:	ae
MFC after:	1 week
This commit is contained in:
Warren Block 2013-01-25 16:33:00 +00:00
parent a89a2c8ba4
commit 0e0d13226c

View File

@ -24,7 +24,7 @@
.\"
.\" $FreeBSD$
.\"
.Dd January 3, 2013
.Dd January 25, 2013
.Dt GPART 8
.Os
.Sh NAME
@ -807,34 +807,51 @@ Both types of bootstrap code are used to boot from the GUID Partition Table.
First, a protective MBR is embedded into the first disk sector from the
.Pa /boot/pmbr
image.
It searches the GPT
It searches through the GPT for a
.Cm freebsd-boot
partition (see the
.Sx "PARTITION TYPES"
section) in the GPT and runs the next bootstrap stage from it.
section) and runs the next bootstrap stage from it.
The
.Cm freebsd-boot
partition should be smaller than 545 KB.
It can be located either before or after other
.Fx
partitions on the disk.
There are two variants of bootstrap code to write to this partition:
.Pa /boot/gptboot
and
.Pa /boot/gptzfsboot .
.Pa /boot/gptboot
is used to boot from UFS.
It searches
It searches through
.Cm freebsd-ufs
GPT partitions and starts
partitions in the GPT and boots from the first one with the
.Cm bootonce
attribute set.
If that attribute is not found,
.Pa /boot/gptboot
boots from the first
.Cm freebsd-ufs
partition with the
.Cm bootme
attribute set.
If neither attribute is found,
.Pa /boot/gptboot
boots from the first
.Cm freebsd-ufs
partition.
.Pa /boot/loader
.Pq the third bootstrap stage
if found.
The
is loaded from the first partition that matches these conditions.
.Pa /boot/gptzfsboot
is used to boot from ZFS.
It searches
It searches through the GPT for
.Cm freebsd-zfs
GPT partitions and starts
partitions, trying to detect ZFS pools.
After all pools are detected,
.Pa /boot/zfsloader
if found.
is started from the first one found.
.Pp
The VTOC8 scheme does not support embedding bootstrap code.
Instead, the 8 KBytes bootstrap code image
@ -945,7 +962,7 @@ The GEOM PART class can detect the same partition table visible through
different GEOM providers, and some of them will be marked as corrupt.
Be careful when choosing a provider for recovery.
If you choose incorrectly you can destroy the metadata of another GEOM class,
e.g.\& GEOM MIRROR or GEOM LABEL.
e.g.,\& GEOM MIRROR or GEOM LABEL.
.Sh SYSCTL VARIABLES
The following
.Xr sysctl 8