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

FreeBSD Manual Pages

  
 
  

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

NAME
       gptboot -- GPT bootcode for UFS on BIOS-based computers

DESCRIPTION
       gptboot is used on BIOS-based computers to boot from a UFS partition on
       a  GPT-partitioned disk.	 gptboot is installed in a freebsd-boot	parti-
       tion with gpart(8).  For	UEFI, gptboot.efi(8) is	used  instead.	 While
       conceptually similar, the details differ.

       When  it	starts,	gptboot	first reads the	GPT and	determines which drive
       and partition to	boot from, as described	under "BOOTING", below.	 If it
       does not	find an	eligible partition, or if the user hits	a  key	within
       three  seconds,	gptboot	 switches  from	auto-boot to interactive mode.
       Interactive mode	allows manual selection	of the disk, partition,	 file-
       name, and boot option flags, as described in boot(8).

IMPLEMENTATION NOTES
       The  GPT	 standard  allows a variable number of partitions, but gptboot
       only boots from tables with 128 partitions or less.

PARTITION ATTRIBUTES
       gptboot checks and manages several attributes of	GPT UFS	partitions.

       bootme	   Attempt to boot from	this partition.	 If more than one par-
		   tition has the bootme attribute set,	gptboot	 will  attempt
		   to boot each	one until successful.

       bootonce	   Attempt to boot from	this partition only one	time.  Setting
		   this	 attribute  with  gpart(8) automatically also sets the
		   bootme  attribute.	Multiple  partitions  may   have   the
		   bootonce and	bootme attributes set.

       bootfailed  The	bootfailed  attribute  marks  partitions  that had the
		   bootonce attribute set, but failed to boot.	This attribute
		   is managed by the system.   See  "BOOTING"  and  "POST-BOOT
		   ACTIONS" below for details.

USAGE
       For  normal  usage,  the	user does not have to set or manage any	of the
       partition attributes.  gptboot will boot	from the first	UFS  partition
       found.

       The  bootonce  attribute	 can be	used for testing an upgraded operating
       system on an already-working computer.  The existing  system  partition
       is  left	 untouched,  and the new version of the	operating system to be
       tested is installed on another partition.  The  bootonce	 attribute  is
       set  on	that  new test partition.  The next boot is attempted from the
       test partition.	Success	or failure will	be shown  in  the  system  log
       files.	After  a  successful boot of the test partition, a user	script
       can check the logs and change the bootme	attributes so the test	parti-
       tion  becomes the new system partition.	Because	the bootonce attribute
       is cleared after	an attempted boot, a failed boot will  not  leave  the
       system  attempting  to  boot  from a partition that will	never succeed.
       Instead,	the system will	boot from the older,  known-working  operating
       system  that  has not been modified.  If	the bootme attribute is	set on
       any partitions, booting will be attempted from them first.  If no  par-
       titions	with  bootme  attributes  are found, booting will be attempted
       from the	first UFS partition found.

BOOTING
       gptboot first reads the partition table.	  All  freebsd-ufs  partitions
       with only the bootonce attribute	set, indicating	a failed boot, are set
       to  bootfailed.	gptboot	then scans through all of the freebsd-ufs par-
       titions.	 Boot behavior	depends	 on  the  combination  of  bootme  and
       bootonce	attributes set on those	partitions.

       bootonce	+ bootme      Highest priority:	booting	is attempted from each
			      of the freebsd-ufs partitions with both of these
			      attributes.   On	each partition,	the bootme at-
			      tribute is removed and the boot attempted.

       bootme		      Middle priority: booting is attempted from  each
			      of  the  freebsd-ufs  partitions with the	bootme
			      attribute.

       If neither bootonce nor bootme attributes are found on any  partitions,
       booting is attempted from the first freebsd-ufs partition on the	disk.

POST-BOOT ACTIONS
       The   startup   script	/etc/rc.d/gptboot  checks  the	attributes  of
       freebsd-ufs  partitions	on  all	 GPT  disks.   Partitions   with   the
       bootfailed  attribute  generate	a "boot	from X failed" system log mes-
       sage.  Partitions with only the bootonce	attribute, indicating a	parti-
       tion that successfully booted, generate a "boot from X succeeded"  sys-
       tem  log	 message.   The	bootfailed attributes are cleared from all the
       partitions.  The	bootonce attribute is cleared from the partition  that
       successfully booted.  There is normally only one	of these.

FILES
       /boot/gptboot  bootcode binary
       /boot.config   parameters for the boot blocks (optional)

EXAMPLES
       gptboot	is  installed  in  a freebsd-boot partition, usually the first
       partition on the	disk.  A "protective MBR" (see gpart(8)) is  typically
       installed in combination	with gptboot.

       Install gptboot on the ada0 drive:

	     gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1	ada0

       gptboot can also	be installed without the PMBR:

	     gpart bootcode -p /boot/gptboot -i	1 ada0

       Set the bootme attribute	for partition 2:

	     gpart set -a bootme -i 2 ada0

       Set  the	bootonce attribute for partition 2, automatically also setting
       the bootme attribute:

	     gpart set -a bootonce -i 2	ada0

SEE ALSO
       boot.config(5), rc.conf(5), boot(8), gpart(8)

HISTORY
       gptboot appeared	in FreeBSD 7.1.

AUTHORS
       This manual page	was written by Warren Block <wblock@FreeBSD.org>.

FreeBSD	13.2			March 18, 2022			    GPTBOOT(8)

NAME | DESCRIPTION | IMPLEMENTATION NOTES | PARTITION ATTRIBUTES | USAGE | BOOTING | POST-BOOT ACTIONS | FILES | EXAMPLES | SEE ALSO | HISTORY | AUTHORS

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

home | help