Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
GPART(8)		    System Manager's Manual		      GPART(8)

NAME
       gpart --	control	utility	for the	disk partitioning GEOM class

SYNOPSIS
       To  add support for the disk partitioning GEOM class, place one or more
       of the following	lines in your kernel configuration file:

	     options GEOM_PART_APM
	     options GEOM_PART_BSD
	     options GEOM_PART_EBR
	     options GEOM_PART_EBR_COMPAT
	     options GEOM_PART_GPT
	     options GEOM_PART_MBR
	     options GEOM_PART_PC98
	     options GEOM_PART_VTOC8

       The GEOM_PART_APM option	adds support for the Apple Partition Map (APM)
       found on	Apple Macintosh	computers.  The	GEOM_PART_BSD option adds sup-
       port for	the traditional	BSD disklabel.	The GEOM_PART_EBR option  adds
       support	for  the Extended Boot Record (EBR), which is used to define a
       logical partition.  The GEOM_PART_EBR_COMPAT  option  enables  backward
       compatibility for partition names in the	EBR scheme.  Also it makes im-
       possible	 any types of actions with such	partitions.  The GEOM_PART_GPT
       option adds support for the GUID	Partition Table	(GPT) found  on	 Intel
       Itanium	 computers   and   Intel-based	 Macintosh   computers.	   The
       GEOM_PART_MBR option adds support for  the  Master  Boot	 Record	 (MBR)
       found  on PCs and used on many removable	media.	The GEOM_PART_PC98 op-
       tion adds support for the MBR variant as	used on	NEC  PC-98  computers.
       The  GEOM_PART_VTOC8  option  adds support for Sun's SMI	VTOC8 label as
       found on	computers based	on SPARC64 and UltraSPARC.

       Usage of	the gpart utility:

       gpart add -t type [-a  alignment]  [-b  start]  [-s  size]  [-i	index]
	     [-l label]	[-f flags] geom
       gpart backup geom
       gpart bootcode [-b bootcode] [-p	partcode -i index] [-f flags] geom
       gpart commit geom
       gpart create -s scheme [-n entries] [-f flags] provider
       gpart delete -i index [-f flags]	geom
       gpart destroy [-F] [-f flags] geom
       gpart modify -i index [-l label]	[-t type] [-f flags] geom
       gpart recover [-f flags]	geom
       gpart resize -i index [-a alignment] [-s	size] [-f flags] geom
       gpart restore [-lF] [-f flags] provider [...]
       gpart set -a attrib -i index [-f	flags] geom
       gpart show [-l |	-r] [-p] [geom ...]
       gpart undo geom
       gpart unset -a attrib -i	index [-f flags] geom

DESCRIPTION
       The  gpart utility is used to partition GEOM providers, normally	disks.
       The first argument of which is the action to be taken:

       add	 Add a new partition to	the partitioning scheme	given by geom.
		 The partition begins on the logical block  address  given  by
		 the  -b  start	 option.  Its size is given by the -s size op-
		 tion.	SI unit	suffixes are allowed.  One or both -b  and  -s
		 options  can be omitted.  If so they are automatically	calcu-
		 lated.	 The type of the partition is given by the -t type op-
		 tion.	Partition types	are discussed below in the section en-
		 titled	"PARTITION TYPES".

		 Additional options include:

		 -a alignment  If specified, then gpart	utility	tries to align
			       start offset and	partition size to be  multiple
			       of alignment value.

		 -i index      The  index  in the partition table at which the
			       new partition is	to be placed.  The  index  de-
			       termines	 the  name  of the device special file
			       used to represent the partition.

		 -l label      The label attached to the partition.  This  op-
			       tion  is	 only  valid when used on partitioning
			       schemes that support partition labels.

		 -f flags      Additional operational flags.  See the  section
			       entitled	 "OPERATIONAL  FLAGS" below for	a dis-
			       cussion about its use.

       backup	 Dump a	partition table	to standard output in  special	format
		 used by restore action.

       bootcode	 Embed	bootstrap code into the	partitioning scheme's metadata
		 on the	geom (using -b bootcode) or write bootstrap code  into
		 a partition (using -p partcode	and -i index).	Not all	parti-
		 tioning  schemes  have	 embedded  bootstrap  code,  so	the -b
		 bootcode option is scheme-specific in nature (see the section
		 entitled "BOOTSTRAPPING"  below).   The  -b  bootcode	option
		 specifies  a file that	contains the bootstrap code.  The con-
		 tents and size	of the file are	determined by the partitioning
		 scheme.  The -p partcode option specifies a  file  that  con-
		 tains	the  bootstrap code intended to	be written to a	parti-
		 tion.	The partition is specified by  the  -i	index  option.
		 The  size  of	the  file must be smaller than the size	of the
		 partition.

		 Additional options include:

		 -f flags    Additional	operational flags.   See  the  section
			     entitled  "OPERATIONAL FLAGS" below for a discus-
			     sion about	its use.

       commit	 Commit	any pending changes for	geom geom.   All  actions  are
		 being	committed  by  default	and will not result in pending
		 changes.  Actions can be modified with	the -f flags option so
		 that they are not being committed by default.	As such,  they
		 become	 pending.   Pending  changes are reflected by the geom
		 and the gpart utility,	but they are not actually  written  to
		 disk.	 The  commit  action  will  write  any and all pending
		 changes to disk.

       create	 Create	a new partitioning  scheme  on	a  provider  given  by
		 provider.  The	-s scheme option determines the	scheme to use.
		 The  kernel needs to have support for a particular scheme be-
		 fore that scheme can be used to partition a disk.

		 Additional options include:

		 -n 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.	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 entries.

		 -f flags    Additional	operational flags.   See  the  section
			     entitled  "OPERATIONAL FLAGS" below for a discus-
			     sion about	its use.

       delete	 Delete	a partition from geom geom and further	identified  by
		 the  -i  index	option.	 The partition cannot be actively used
		 by the	kernel.

		 Additional options include:

		 -f flags    Additional	operational flags.   See  the  section
			     entitled  "OPERATIONAL FLAGS" below for a discus-
			     sion about	its use.

       destroy	 Destroy the partitioning scheme as implemented	by geom	geom.

		 Additional options include:

		 -F	     Forced destroying of the partition	table even  if
			     it	is not empty.

		 -f flags    Additional	 operational  flags.   See the section
			     entitled "OPERATIONAL FLAGS" below	for a  discus-
			     sion about	its use.

       modify	 Modify	 a  partition from geom	geom and further identified by
		 the -i	index option.  Only the	the type and/or	label  of  the
		 partition  can	 be  modified.	To change the type of a	parti-
		 tion, specify the new type  with  the	-t  type  option.   To
		 change	 the  label of a partition, specify the	new label with
		 the -l	label option.  Not all	partitioning  schemes  support
		 labels	 and  it is invalid to try to change a partition label
		 in such cases.

		 Additional options include:

		 -f flags    Additional	operational flags.   See  the  section
			     entitled  "OPERATIONAL FLAGS" below for a discus-
			     sion about	its use.

       recover	 Recover corrupt partition's scheme metadata on	the geom geom.
		 See the section entitled "RECOVERING"	below  for  the	 addi-
		 tional	information.

		 Additional options include:

		 -f flags    Additional	 operational  flags.   See the section
			     entitled "OPERATIONAL FLAGS" below	for a  discus-
			     sion about	its use.

       resize	 Resize	 a  partition from geom	geom and further identified by
		 the -i	index option.  New partition size is expressed in log-
		 ical block numbers and	can be given by	the  -s	 size  option.
		 If -s option is omitted then new size is automatically	calcu-
		 lated to maximum available from given geom geom.

		 Additional options include:

		 -a alignment  If specified, then gpart	utility	tries to align
			       partition  size	to  be	multiple  of alignment
			       value.

		 -f flags      Additional operational flags.  See the  section
			       entitled	 "OPERATIONAL  FLAGS" below for	a dis-
			       cussion about its use.

       restore	 Restore the partition table from backup previously created by
		 backup	action and given from standard input.  Only  partition
		 table	may  be	restored.  This	action does not	affect content
		 of partitions.	 This mean that	you should copy	your data from
		 backup	after restoring	partition  table  and  write  bootcode
		 again if it is	needed.

		 Additional options include:

		 -F	     Destroy partition table on	the given provider be-
			     fore doing	restore.

		 -l	     Restore partition labels for partitioning schemes
			     that support them.

		 -f flags    Additional	 operational  flags.   See the section
			     entitled "OPERATIONAL FLAGS" below	for a  discus-
			     sion about	its use.

       set	 Set the named attribute on the	partition entry.  See the sec-
		 tion  entitled	"ATTRIBUTES" below for a list of available at-
		 tributes.

		 Additional options include:

		 -f flags    Additional	operational flags.   See  the  section
			     entitled  "OPERATIONAL FLAGS" below for a discus-
			     sion about	its use.

       show	 Show the current partition information	of the specified geoms
		 or all	geoms if none are specified.  Additional  options  in-
		 clude:

		 -l	     For  partition schemes that support partition la-
			     bels print	them instead of	partition type.

		 -p	     Show provider names instead of partition indexes.

		 -r	     Show raw partition	type instead of	symbolic name.

       undo	 Revert	any pending changes for	geom geom.  This action	is the
		 opposite of the commit	action and can be  used	 to  undo  any
		 changes that have not been committed.

       unset	 Clear	the  named  attribute on the partition entry.  See the
		 section entitled "ATTRIBUTES" below for a list	 of  available
		 attributes.

		 Additional options include:

		 -f flags    Additional	 operational  flags.   See the section
			     entitled "OPERATIONAL FLAGS" below	for a  discus-
			     sion about	its use.

PARTITION TYPES
       Partition  types	 are identified	on disk	by particular strings or magic
       values.	The gpart utility uses symbolic	 names	for  common  partition
       types  to  avoid	the user needing to know these values or other details
       of the partitioning scheme in question.	The gpart utility also	allows
       the user	to specify scheme-specific partition types for partition types
       that  do	 not have symbolic names.  The symbolic	names currently	under-
       stood are:

       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.	  The  scheme-specific
		      type is "!21686148-6449-6E6F-744E-656564454649".

       efi	      The system partition for computers that use the Extensi-
		      ble  Firmware  Interface	(EFI).	In such	cases, the GPT
		      partitioning scheme is being used	and the	actual	parti-
		      tion type	for the	system partition can also be specified
		      as "!c12a7328-f81f-11d2-ba4b-00a0c93ec93ab".

       freebsd	      A	 FreeBSD partition that	uses the BSD disklabel to sub-
		      divide the partition  into  file	systems.   This	 is  a
		      legacy partition type and	should not be used for the APM
		      or  GPT  schemes.	  The scheme-specific types are	"!165"
		      for     MBR,	"!FreeBSD"	for	 APM,	   and
		      "!516e7cb4-6ecf-11d6-8ff8-00022d09712b" for GPT.

       freebsd-boot   A	 FreeBSD  partition  dedicated to bootstrap code.  The
		      scheme-specific		      type		    is
		      "!83bd6b9d-7f41-11dc-be0b-001560b84f0f" for GPT.

       freebsd-swap   A	 FreeBSD  partition  dedicated	to  swap  space.   The
		      scheme-specific  types  are  "!FreeBSD-swap"  for	  APM,
		      "!516e7cb5-6ecf-11d6-8ff8-00022d09712b" for GPT, and tag
		      0x0901 for VTOC8.

       freebsd-ufs    A	 FreeBSD  partition  that  contains a UFS or UFS2 file
		      system.  The scheme-specific  types  are	"!FreeBSD-UFS"
		      for   APM,  "!516e7cb6-6ecf-11d6-8ff8-00022d09712b"  for
		      GPT, and tag 0x0902 for VTOC8.

       freebsd-vinum  A	FreeBSD	partition that contains	a Vinum	 volume.   The
		      scheme-specific  types  are  "!FreeBSD-Vinum"  for  APM,
		      "!516e7cb8-6ecf-11d6-8ff8-00022d09712b" for GPT, and tag
		      0x0903 for VTOC8.

       freebsd-zfs    A	FreeBSD	partition that contains	 a  ZFS	 volume.   The
		      scheme-specific	types	are  "!FreeBSD-ZFS"  for  APM,
		      "!516e7cba-6ecf-11d6-8ff8-00022d09712b"  for  GPT,   and
		      0x0904 for VTOC8.

       mbr	      A	 partition  that  is  sub-partitioned by a master boot
		      record	(MBR).	   This	   type	   is	  known	    as
		      "!024dee41-33e7-11d3-9d69-0008c781f39f" by GPT.

ATTRIBUTES
       The scheme-specific attributes for EBR:

       active

       The scheme-specific attributes for GPT:

       bootme	   When	 set, the gptboot stage	1 boot loader will try to boot
		   the system from this	partition.  Multiple partitions	 might
		   be  marked with the bootme attribute.  In such scenario the
		   gptboot will	try all	bootme partitions one  by  one,	 until
		   the next boot stage is successfully entered.

       bootonce	   Setting  this  attribute  automatically sets	the bootme at-
		   tribute.  When set, the gptboot stage 1  boot  loader  will
		   try to boot the system from this partition only once.  Par-
		   titions  with both bootonce and bootme attributes are tried
		   before partitions with only the bootme  attribute.	Before
		   bootonce partition is tried,	the gptboot removes the	bootme
		   attribute  and tries	to execute the next boot stage.	 If it
		   fails, the bootonce attribute that is now alone is replaced
		   with	the bootfailed attribute.  If  the  execution  of  the
		   next	 boot  stage  succeeds,	 but  the  system is not fully
		   booted, the gptboot will look for bootonce attributes alone
		   (without the	bootme attribute) on the next system boot  and
		   will	 replace  those	with the bootfailed attribute.	If the
		   system is  fully  booted,  the  /etc/rc.d/gptboot  start-up
		   script  will	look for partition with	the bootonce attribute
		   alone, will remove the attribute and	log  that  the	system
		   was	successfully booted from this partition.  There	should
		   be at most one bootonce partition when system  is  success-
		   fully booted.  Multiple partitions might be marked with the
		   bootonce and	bootme attribute pairs.

       bootfailed  This	 attribute should not be manually managed.  It is man-
		   aged	 by  the  gptboot  stage  1  boot   loader   and   the
		   /etc/rc.d/gptboot  start-up script.	This attribute is used
		   to mark partitions that had the bootonce attribute set, but
		   we failed to	boot from them.	 Once  we  successfully	 boot,
		   the /etc/rc.d/gptboot script	will log all the partitions we
		   failed  to boot from	and will remove	the bootfailed attrib-
		   utes.

       The scheme-specific attributes for MBR:

       active

       The scheme-specific attributes for PC98:

       active

       bootable

BOOTSTRAPPING
       FreeBSD supports	several	partitioning schemes and each scheme uses dif-
       ferent 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 could	be separated into two types.  The first	one is
       embedded	 in the	partitioning scheme's metadata,	the second type	is lo-
       cated on	the specific partition.	 The embedding bootstrap  code	should
       be  done	 only with the gpart bootcode command with -b bootcode option.
       The GEOM	PART class has knowlege	on how to embed	 bootstrap  code  into
       specific	partitioning scheme metadata without damage.

       The  Master  Boot Record	(MBR) uses 512-bytes bootstrap code image, em-
       bedded into partition table's metadata area.  There are two variants of
       this bootstrap code: /boot/mbr and /boot/boot0.	The first one searches
       partition with active attribute (see the	"ATTRIBUTES" section)  in  the
       partition  table.   Then	it runs	next bootstrap stage.  The /boot/boot0
       image contains a	boot manager with some	additional  interactive	 func-
       tions.

       The  BSD	 disklabel  is	usually	 created  on  top of the MBR partition
       (slice) with type freebsd (see the "PARTITION TYPES" section).  It uses
       8 KB size bootstrap code	image /boot/boot, embedded into	partition  ta-
       ble's metadata area.

       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 sec-
       tor from	the /boot/pmbr image.  It searches the freebsd-boot  partition
       (see  the "PARTITION TYPES" section) in the GPT and runs	next bootstrap
       stage from it.  The freebsd-boot	partition should be smaller  than  545
       KB.   There  are	two variants of	bootstrap code to write	to this	parti-
       tion: /boot/gptboot and /boot/gptzfsboot.  The first  one  is  used  to
       boot from UFS.  It searches in the GPT partition	with type freebsd-ufs,
       and  it	runs the third bootstrap stage ( /boot/loader) if it is	found.
       The /boot/gptzfsboot is used to boot from ZFS.  It  searches  partition
       with type freebsd-zfs and starts	/boot/zfsloader	from it.

       The  VTOC8  scheme does not support embedding bootstrap code.  Instead,
       the 8 KBytes bootstrap code image /boot/boot1 should  be	 written  with
       gpart  bootcode	command	 with  -p  bootcode option to all sufficiently
       large VTOC8 partitions.	To do this the -i index	option	could  be  om-
       mited.

       The  APM	 scheme	 also  does not	support	embedding bootstrap code.  In-
       stead, the 800 KBytes bootstrap code image  /boot/boot1.hfs  should  be
       written	 with	gpart	bootcode   command  to	a  partition  of  type
       freebsd-boot, which should also be 800 KB in size.

OPERATIONAL FLAGS
       Actions other than the commit and undo  actions	take  an  optional  -f
       flags  option.	This  option is	used to	specify	action-specific	opera-
       tional flags.  By default, the gpart utility defines the	 `C'  flag  so
       that  the action	is immediately committed.  The user can	specify	"-f x"
       to have the action result in a pending  change  that  can  later,  with
       other  pending  changes,	 be committed as a single compound change with
       the commit action or reverted with the undo action.

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 meta-
       data  it	 marks	this table as corrupt and reports the corruption.  Any
       operations on corrupt tables are	 prohibited  except  for  destroy  and
       recover.

       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 dd(1)	command, to restore the	ability	to de-
       tect the	GPT.  The copy of the protective MBR is	usually	located	in the
       /boot/pmbr file.

       If one GPT header appears to be corrupt but the other copy remains  in-
       tact, the kernel	will log the following:

	     GEOM: provider: the primary GPT table is corrupt or invalid.
	     GEOM: provider: using the secondary instead -- recovery strongly advised.

       or

	     GEOM: provider: the secondary GPT table is	corrupt	or invalid.
	     GEOM: provider: using the primary only -- recovery	suggested.

       Also  gpart  commands  such  as show, status and	list will report about
       corrupt tables.

       If the size of the device has changed (e.g. volume expansion) the  sec-
       ondary  GPT  header will	no longer be located in	the last sector.  This
       is not a	metadata corruption, but it is dangerous because  any  corrup-
       tion  of	 the  primary  GPT will	lead to	loss of	partition table.  This
       problem is reported by the kernel with the message:

	     GEOM: provider: the secondary GPT header is not in	the last LBA.

       This situation can be recovered with the	recover	command.  This command
       reconstructs the	corrupt	metadata using known valid metadata and	 relo-
       cates the secondary GPT to the end of the device.

       NOTE:  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.

SYSCTL VARIABLES
       The  following  sysctl(8) variables can be used to control the behavior
       of the PART GEOM	class.	The default value is shown next	to each	 vari-
       able.

       kern.geom.part.check_integrity: 1
	       This  variable  controls	 the  behaviour	 of metadata integrity
	       checks.	When integrity checks are enabled, the PART GEOM class
	       verifies	all generic partition  parameters  obtained  from  the
	       disk  metadata.	 If some inconsistency is detected, the	parti-
	       tion  table  will  be  rejected	with  a	 diagnostic   message:
	       GEOM_PART: Integrity check failed (provider, scheme).

EXIT STATUS
       Exit status is 0	on success, and	1 if the command fails.

EXAMPLES
       Create GPT scheme on ad0:

	     /sbin/gpart create	-s GPT ad0

       Embed GPT bootstrap code	into protective	MBR:

	     /sbin/gpart bootcode -b /boot/pmbr	ad0

       Create  a dedicated freebsd-boot	partition that can boot	FreeBSD	from a
       freebsd-ufs partition, and install bootstrap code into it.  This	parti-
       tion must be larger than	/boot/gptboot, or the GPT boot you  are	 plan-
       ning  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).

	     /sbin/gpart add -b	34 -s 128 -t freebsd-boot ad0
	     /sbin/gpart bootcode -p /boot/gptboot -i 1	ad0

       Create a	512MB-sized freebsd-ufs	partition that would contain UFS where
       the system boots	from:

	     /sbin/gpart add -b	162 -s 1048576 -t freebsd-ufs ad0

       Create  MBR  scheme on ada0, then create	30GB-sized FreeBSD slice, mark
       it active and install boot0 boot	manager:

	     /sbin/gpart create	-s MBR ada0
	     /sbin/gpart add -t	freebsd	-s 30G ada0
	     /sbin/gpart set -a	active -i 1 ada0
	     /sbin/gpart bootcode -b /boot/boot0 ada0

       Now create BSD scheme (BSD label) with ability to have up to 20	parti-
       tions:

	     /sbin/gpart create	-s BSD -n 20 ada0s1

       Create 1GB-sized	UFS partition and 4GB-sized swap partition:

	     /sbin/gpart add -t	freebsd-ufs -s 1G ada0s1
	     /sbin/gpart add -t	freebsd-swap -s	4G ada0s1

       Install bootstrap code for the BSD label:

	     /sbin/gpart bootcode -b /boot/boot	ada0s1

       Create VTOC8 scheme on da0:

	     /sbin/gpart create	-s VTOC8 da0

       Create a	512MB-sized freebsd-ufs	partition that would contain UFS where
       the system boots	from:

	     /sbin/gpart add -s	512M -t	freebsd-ufs da0

       Create  a  15GB-sized  freebsd-ufs partition that would contain UFS and
       aligned on 4KB boundaries:

	     /sbin/gpart add -s	15G -t freebsd-ufs -a 4k da0

       After having created all	required partitions, embed bootstrap code into
       them:

	     /sbin/gpart bootcode -p /boot/boot1 da0

       Create backup of	partition table	from da0:

	     /sbin/gpart backup	da0 > da0.backup

       Restore partition table from backup to da0:

	     /sbin/gpart restore -l da0	< /mnt/da0.backup

       Clone partition table from ada0 to ada1 and ada2:

	     /sbin/gpart backup	ada0 | /sbin/gpart restore -F ada1 ada2

SEE ALSO
       dd(1), geom(4), boot0cfg(8), geom(8)

HISTORY
       The gpart utility appeared in FreeBSD 7.0.

AUTHORS
       Marcel Moolenaar	<marcel@FreeBSD.org>

FreeBSD	9.0			August 19, 2011			      GPART(8)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=gpart&manpath=FreeBSD+9.0-RELEASE>

home | help