Add a section that explicitly describes partitioning schemes. Modify

existing sections to refer to the new one.  Rearrange partitioning scheme
list so MBR and EBR types are together.  Also add several corrections for
grammar, clarity, and consistency.

Approved by:	gjb (mentor)
MFC after:	1 week
This commit is contained in:
Warren Block 2011-11-21 00:02:49 +00:00
parent bf3db314f7
commit 97982fcc82
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=227774

View File

@ -24,7 +24,7 @@
.\"
.\" $FreeBSD$
.\"
.Dd August 19, 2011
.Dd October 26, 2011
.Dt GPART 8
.Os
.Sh NAME
@ -37,52 +37,20 @@ lines in your kernel configuration file:
.Bd -ragged -offset indent
.Cd "options GEOM_PART_APM"
.Cd "options GEOM_PART_BSD"
.Cd "options GEOM_PART_EBR"
.Cd "options GEOM_PART_EBR_COMPAT"
.Cd "options GEOM_PART_GPT"
.Cd "options GEOM_PART_MBR"
.Cd "options GEOM_PART_EBR"
.Cd "options GEOM_PART_EBR_COMPAT"
.Cd "options GEOM_PART_PC98"
.Cd "options GEOM_PART_VTOC8"
.Ed
.Pp
The
.Dv GEOM_PART_APM
option adds support for the Apple Partition Map (APM)
found on Apple Macintosh computers.
The
.Dv GEOM_PART_BSD
option adds support for the traditional
.Bx
disklabel.
The
.Dv GEOM_PART_EBR
option adds support for the Extended Boot Record (EBR),
which is used to define a logical partition.
The
.Dv GEOM_PART_EBR_COMPAT
option enables backward compatibility for partition names
in the EBR scheme.
Also it makes impossible any types of actions
with such partitions.
The
.Dv GEOM_PART_GPT
option adds support for the GUID Partition Table (GPT)
found on Intel Itanium computers and Intel-based Macintosh computers.
The
.Dv GEOM_PART_MBR
option adds support for the Master Boot Record (MBR)
found on PCs and used on many removable media.
The
.Dv GEOM_PART_PC98
option adds support for the MBR variant as used on
NEC PC-98 computers.
The
.Dv GEOM_PART_VTOC8
option adds support for Sun's SMI VTOC8 label as
found on computers based on
.Tn SPARC64
and
.Tn UltraSPARC.
These options provide support for the various types of partitioning
schemes supported by the
.Ns Nm
utility. See
.Sx "PARTITIONING SCHEMES"
below for more details.
.Pp
Usage of the
.Ns Nm
@ -190,7 +158,7 @@ utility:
The
.Nm
utility is used to partition GEOM providers, normally disks.
The first argument of which is the action to be taken:
The first argument is the action to be taken:
.Bl -tag -width ".Cm bootcode"
.\" ==== ADD ====
.It Cm add
@ -245,7 +213,7 @@ about its use.
.El
.\" ==== BACKUP ====
.It Cm backup
Dump a partition table to standard output in special format used by
Dump a partition table to standard output in a special format used by the
.Cm restore
action.
.\" ==== BOOTCODE ====
@ -290,18 +258,17 @@ about its use.
.It Cm commit
Commit any pending changes for geom
.Ar geom .
All actions are being committed by default and will not result in
All actions are committed by default and will not result in
pending changes.
Actions can be modified with the
.Fl f Ar flags
option so that they are not being committed by default.
As such, they become pending.
option so that they are not committed, but become pending.
Pending changes are reflected by the geom and the
.Nm
utility, but they are not actually written to disk.
The
.Cm commit
action will write any and all pending changes to disk.
action will write all pending changes to disk.
.\" ==== CREATE ====
.It Cm create
Create a new partitioning scheme on a provider given by
@ -309,16 +276,16 @@ Create a new partitioning scheme on a provider given by
The
.Fl s Ar scheme
option determines the scheme to use.
The kernel needs to have support for a particular scheme before
The kernel must have support for a particular scheme before
that scheme can be used to partition a disk.
.Pp
Additional options include:
.Bl -tag -width 10n
.It Fl n Ar entries
The number of entries in the partition table.
Every partitioning scheme has a minimum and a maximum number of entries
and this option allows tables to be created with the number of entries
that lies anywhere between the minimum and the maximum.
Every partitioning scheme has a minimum and maximum number of entries.
This option allows tables to be created with a number of entries
that is within the limits.
Some schemes have a maximum equal to the minimum and some schemes have
a maximum large enough to be considered unlimited.
By default, partition tables are created with the minimum number of
@ -392,7 +359,7 @@ about its use.
.El
.\" ==== RECOVER ====
.It Cm recover
Recover corrupt partition's scheme metadata on the geom
Recover a corrupt partition's scheme metadata on the geom
.Ar geom .
See the section entitled
.Sx RECOVERING
@ -489,7 +456,7 @@ or all geoms if none are specified.
Additional options include:
.Bl -tag -width 10n
.It Fl l
For partition schemes that support partition labels print them
For partitioning schemes that support partition labels, print them
instead of partition type.
.It Fl p
Show provider names instead of partition indexes.
@ -520,39 +487,93 @@ below for a discussion
about its use.
.El
.El
.\"
.Sh PARTITIONING SCHEMES
Several partitioning schemes are supported by the
.Nm
utility:
.Bl -tag -width ".Cm VTOC8"
.It Cm APM
Apple Partition Map, used by PowerPC(R) Macintosh(R) computers.
Requires the
.Cd GEOM_PART_APM
kernel option.
.It Cm BSD
BSD disklabel without an MBR.
Sometimes called
.Dq dangerously dedicated mode .
.Po
See
.Xr bsdlabel 8 for more information.
.Pc
Requires the
.Cm GEOM_PART_BSD
kernel option.
.It Cm GPT
GUID Partition Table is used on Intel-based Macintosh computers and
gradually replacing MBR on most PCs and other systems.
Requires the
.Cm GEOM_PART_GPT
kernel option.
.It Cm MBR
Master Boot Record is used on PCs and removable media.
Requires the
.Cm GEOM_PART_MBR
kernel option.
The
.Cm GEOM_PART_EBR
option adds support for the Extended Boot Record (EBR),
which is used to define a logical partition.
The
.Cm GEOM_PART_EBR_COMPAT
option enables backward compatibility for partition names
in the EBR scheme.
It also prevents any type of actions on such partitions.
.It Cm PC98
An MBR variant for NEC PC-98 and compatible computers.
Requires the
.Cm GEOM_PART_PC98
kernel option.
.It Cm VTOC8
Sun's SMI Volume Table Of Contents, used by
.Tn SPARC64
and
.Tn UltraSPARC
computers.
Requires the
.Cm GEOM_PART_VTOC8
kernel option.
.El
.Sh PARTITION TYPES
Partition types are identified on disk by particular strings or magic
values.
The
.Nm
utility uses symbolic names for common partition types to avoid the
user needing to know these values or other details of the partitioning
utility uses symbolic names for common partition types so the user
does not need to know these values or other details of the partitioning
scheme in question.
The
.Nm
utility also allows the user to specify scheme-specific partition types
for partition types that do not have symbolic names.
The symbolic names currently understood are:
Symbolic names currently understood are:
.Bl -tag -width ".Cm freebsd-vinum"
.It Cm bios-boot
The system partition dedicated to second stage of the boot loader program.
Usually it used by GRUB 2 loader when the partition table is GPT.
Usually it is used by the GRUB 2 loader for GPT partitioning schemes.
The scheme-specific type is
.Qq Li "!21686148-6449-6E6F-744E-656564454649" .
.It Cm efi
The system partition for computers that use the Extensible Firmware
Interface (EFI).
In such cases, the GPT partitioning scheme is being used and the
In such cases, the GPT partitioning scheme is used and the
actual partition type for the system partition can also be specified as
.Qq Li "!c12a7328-f81f-11d2-ba4b-00a0c93ec93ab" .
.It Cm freebsd
A
.Fx
partition that uses the
partition subdivided into filesystems with a
.Bx
disklabel to sub-divide the
partition into file systems.
disklabel.
This is a legacy partition type and should not be used for the APM
or GPT schemes.
The scheme-specific types are
@ -581,7 +602,7 @@ for GPT, and tag 0x0901 for VTOC8.
.It Cm freebsd-ufs
A
.Fx
partition that contains a UFS or UFS2 file system.
partition that contains a UFS or UFS2 filesystem.
The scheme-specific types are
.Qq Li "!FreeBSD-UFS"
for APM,
@ -606,7 +627,7 @@ for APM,
.Qq Li "!516e7cba-6ecf-11d6-8ff8-00022d09712b"
for GPT, and 0x0904 for VTOC8.
.It Cm mbr
A partition that is sub-partitioned by a master boot record (MBR).
A partition that is sub-partitioned by a Master Boot Record (MBR).
This type is known as
.Qq Li "!024dee41-33e7-11d3-9d69-0008c781f39f"
by GPT.
@ -712,27 +733,28 @@ The scheme-specific attributes for PC98:
.Fx
supports several partitioning schemes and each scheme uses different
bootstrap code.
The bootstrap code is located in the specific disk area for each partitioning
scheme and also it might have different size.
The bootstrap code is located in a specific disk area for each partitioning
scheme, and may vary in size for different schemes.
.Pp
The bootstrap code could be separated into two types.
The first one is embedded in the partitioning scheme's metadata, the second
type is located on the specific partition.
The embedding bootstrap code should be done only with the
Bootstrap code can be separated into two types.
The first type is embedded in the partitioning scheme's metadata, while the
second type is located on a specific partition.
Embedding bootstrap code should only be done with the
.Cm gpart bootcode
command with
command with the
.Fl b Ar bootcode
option.
The GEOM PART class has knowlege on how to embed bootstrap code into specific
partitioning scheme metadata without damage.
The GEOM PART class knows how to safely embed bootstrap code into
specific partitioning scheme metadata without causing any damage.
.Pp
The Master Boot Record (MBR) uses 512-bytes bootstrap code image, embedded into
partition table's metadata area.
The Master Boot Record (MBR) uses a 512-byte bootstrap code image, embedded
into the partition table's metadata area.
There are two variants of this bootstrap code:
.Pa /boot/mbr
and
.Pa /boot/boot0 .
The first one searches partition with
.Pa /boot/mbr
searches for a partition with the
.Cm active
attribute (see the
.Sx ATTRIBUTES
@ -740,9 +762,10 @@ section) in the partition table.
Then it runs next bootstrap stage.
The
.Pa /boot/boot0
image contains a boot manager with some additional interactive functions.
image contains a boot manager with some additional interactive functions
for multi-booting from a user-selected partition.
.Pp
The BSD disklabel is usually created on top of the MBR partition (slice)
A BSD disklabel is usually created inside an MBR partition (slice)
with type
.Cm freebsd
(see the
@ -750,17 +773,17 @@ with type
section).
It uses 8 KB size bootstrap code image
.Pa /boot/boot ,
embedded into partition table's metadata area.
embedded into the partition table's metadata area.
.Pp
Both types of bootstrap code are used to boot from the GUID Partition Table.
First of all, a protective MBR is embedded into first disk sector from the
First, a protective MBR is embedded into the first disk sector from the
.Pa /boot/pmbr
image.
It searches the
It searches the GPT
.Cm freebsd-boot
partition (see the
.Sx "PARTITION TYPES"
section) in the GPT and runs next bootstrap stage from it.
section) in the GPT and runs the next bootstrap stage from it.
The
.Cm freebsd-boot
partition should be smaller than 545 KB.
@ -768,37 +791,39 @@ There are two variants of bootstrap code to write to this partition:
.Pa /boot/gptboot
and
.Pa /boot/gptzfsboot .
The first one is used to boot from UFS.
It searches in the GPT partition with type
.Cm freebsd-ufs ,
and it runs the third bootstrap stage (
.Pa /boot/loader )
if it is found.
.Pa /boot/gptboot
is used to boot from UFS.
It searches
.Cm freebsd-ufs
GPT partitions and starts
.Pa /boot/loader
.Pq the third bootstrap stage
if found.
The
.Pa /boot/gptzfsboot
is used to boot from ZFS.
It searches partition with type
It searches
.Cm freebsd-zfs
and starts
GPT partitions and starts
.Pa /boot/zfsloader
from it.
if found.
.Pp
The VTOC8 scheme does not support embedding bootstrap code.
Instead, the 8 KBytes bootstrap code image
.Pa /boot/boot1
should be written with
should be written with the
.Cm gpart bootcode
command with
command with the
.Fl p Ar bootcode
option to all sufficiently large VTOC8 partitions.
To do this the
.Fl i Ar index
option could be ommited.
option could be omitted.
.Pp
The APM scheme also does not support embedding bootstrap code.
Instead, the 800 KBytes bootstrap code image
.Pa /boot/boot1.hfs
should be written with
should be written with the
.Cm gpart bootcode
command to a partition of type
.Cm freebsd-boot ,
@ -829,21 +854,22 @@ action or reverted with the
action.
.Sh RECOVERING
The GEOM PART class supports recovering of partition tables only for GPT.
The GUID partition table has a primary and secondary (backup) copy of
metadata for redundance, these are stored at the begining and the end
of the device respectively.
As a result of having two copies, it is acceptable to have some corruption
within the metadata that is not fatal to the working of GPT.
When the kernel detects corrupt metadata it marks this table as corrupt and
reports the corruption.
Any operations on corrupt tables are prohibited except for
The GUID primary metadata is stored at the beginning of the device.
For redundancy, a secondary
.Pq backup
copy of the metadata is stored at the end of the device.
As a result of having two copies, some corruption of metadata is not
fatal to the working of GPT.
When the kernel detects corrupt metadata, it marks this table as corrupt
and reports the problem.
.Cm destroy
and
.Cm recover .
.Cm recover
are the only operations allowed on corrupt tables.
.Pp
If the first sector of a provider is corrupt, the kernel can not detect GPT
even if partition table itself is not corrupt.
You can rewrite the protective MBR using the
even if the partition table itself is not corrupt.
The protective MBR can be rewritten using the
.Xr dd 1
command, to restore the ability to detect the GPT.
The copy of the protective MBR is usually located in the
@ -874,7 +900,7 @@ will report about corrupt tables.
If the size of the device has changed (e.g.\& volume expansion) the
secondary GPT header will no longer be located in the last sector.
This is not a metadata corruption, but it is dangerous because any
corruption of the primary GPT will lead to loss of partition table.
corruption of the primary GPT will lead to loss of the partition table.
This problem is reported by the kernel with the message:
.Bd -literal -offset indent
GEOM: provider: the secondary GPT header is not in the last LBA.
@ -913,13 +939,13 @@ rejected with a diagnostic message:
.Sh EXIT STATUS
Exit status is 0 on success, and 1 if the command fails.
.Sh EXAMPLES
Create GPT scheme on
Create a GPT scheme on
.Pa ad0 :
.Bd -literal -offset indent
/sbin/gpart create -s GPT ad0
.Ed
.Pp
Embed GPT bootstrap code into protective MBR:
Embed GPT bootstrap code into a protective MBR:
.Bd -literal -offset indent
/sbin/gpart bootcode -b /boot/pmbr ad0
.Ed
@ -935,9 +961,11 @@ This partition must be larger than
.Pa /boot/gptboot ,
or the GPT boot you are planning to write, but smaller than 545 KB.
A size of 15 blocks (7680 bytes) would be sufficient for
booting from UFS but let's use 128 blocks (64 KB) here in
this example, in order to reserve some space for potential
future need (e.g.\& from a ZFS partition).
booting from UFS but 128 blocks (64 KB) is used in
this example to reserve some space for potential
future need (e.g.\& a larger
.Pa /boot/gptzfsboot
for booting from a ZFS partition).
.Bd -literal -offset indent
/sbin/gpart add -b 34 -s 128 -t freebsd-boot ad0
/sbin/gpart bootcode -p /boot/gptboot -i 1 ad0
@ -945,17 +973,17 @@ future need (e.g.\& from a ZFS partition).
.Pp
Create a 512MB-sized
.Cm freebsd-ufs
partition that would contain UFS where the system boots from:
partition to contain a UFS filesystem from which the system can boot.
.Bd -literal -offset indent
/sbin/gpart add -b 162 -s 1048576 -t freebsd-ufs ad0
.Ed
.Pp
Create MBR scheme on
Create an MBR scheme on
.Pa ada0 ,
then create 30GB-sized
then create a 30GB-sized
.Fx
slice, mark it active and
install
install the
.Nm boot0
boot manager:
.Bd -literal -offset indent
@ -965,16 +993,16 @@ boot manager:
/sbin/gpart bootcode -b /boot/boot0 ada0
.Ed
.Pp
Now create
Now create a
.Bx
scheme
.Pf ( Bx
label) with ability to have up to 20 partitions:
label) with space for up to 20 partitions:
.Bd -literal -offset indent
/sbin/gpart create -s BSD -n 20 ada0s1
.Ed
.Pp
Create 1GB-sized UFS partition and 4GB-sized swap partition:
Create a 1GB-sized UFS partition and a 4GB-sized swap partition:
.Bd -literal -offset indent
/sbin/gpart add -t freebsd-ufs -s 1G ada0s1
/sbin/gpart add -t freebsd-swap -s 4G ada0s1
@ -987,7 +1015,7 @@ label:
/sbin/gpart bootcode -b /boot/boot ada0s1
.Ed
.Pp
Create VTOC8 scheme on
Create a VTOC8 scheme on
.Pa da0 :
.Bd -literal -offset indent
/sbin/gpart create -s VTOC8 da0
@ -995,36 +1023,36 @@ Create VTOC8 scheme on
.Pp
Create a 512MB-sized
.Cm freebsd-ufs
partition that would contain UFS where the system boots from:
partition to contain a UFS filesystem from which the system can boot.
.Bd -literal -offset indent
/sbin/gpart add -s 512M -t freebsd-ufs da0
.Ed
.Pp
Create a 15GB-sized
.Cm freebsd-ufs
partition that would contain UFS and aligned on 4KB boundaries:
partition to contain a UFS filesystem and aligned on 4KB boundaries:
.Bd -literal -offset indent
/sbin/gpart add -s 15G -t freebsd-ufs -a 4k da0
.Ed
.Pp
After having created all required partitions, embed bootstrap code into them:
After creating all required partitions, embed bootstrap code into them:
.Bd -literal -offset indent
/sbin/gpart bootcode -p /boot/boot1 da0
.Ed
.Pp
Create backup of partition table from
Create a backup of the partition table from
.Pa da0 :
.Bd -literal -offset indent
/sbin/gpart backup da0 > da0.backup
.Ed
.Pp
Restore partition table from backup to
Restore the partition table from the backup to
.Pa da0 :
.Bd -literal -offset indent
/sbin/gpart restore -l da0 < /mnt/da0.backup
.Ed
.Pp
Clone partition table from
Clone the partition table from
.Pa ada0
to
.Pa ada1