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

FreeBSD Manual Pages

  
 
  

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

NAME
       bectl --	Utility	to manage boot environments on ZFS

SYNOPSIS
       bectl activate [-t] beName
       bectl check
       bectl create [-r] [-e {nonActiveBe | beName@snapshot}] newBeName
       bectl create [-r] beName@snapshot
       bectl destroy [-Fo] beName[@snapshot]
       bectl export sourceBe
       bectl import targetBe
       bectl	jail	[-bU]	 [{-o	key=value   |	-u   key}]...	beName
	     [utility [argument	...]]
       bectl list [-aDHs] [-c property]	 [-C  property]	 [{-c  property	 |  -C
	     property}]
       bectl mount beName [mountpoint]
       bectl rename origBeName newBeName
       bectl {ujail | unjail} {jailId |	jailName} beName
       bectl {umount | unmount}	[-f] beName

       bectl [-h?]

DESCRIPTION
       The  bectl command is used to setup and interact	with ZFS boot environ-
       ments, which are	bootable clones	of datasets.

       Boot environments allow the system to be	upgraded, while	preserving the
       old system environment in a separate ZFS	dataset.

       The following commands are supported by bectl:

       activate	[-t] beName
		 Activate the given beName as the default boot filesystem.  If
		 the [-t] flag is given, this takes effect only	for  the  next
		 boot.

       check	 Performs  a  silent  sanity  check on the current system.  If
		 boot environments are supported and  used,  bectl  will  exit
		 with  a  status code of 0.  Any other status code is not cur-
		 rently	defined	and may, in the	future,	grow  special  meaning
		 for different degrees of sanity check failures.

       create [-r] [-e {nonActiveBe | beName@snapshot}]	newBeName
		 Create	a new boot environment named newBeName.

		 If the	-r flag	is given, a recursive boot environment will be
		 made.

		 If  the  -e  flag  is	specified, the new environment will be
		 cloned	from the given nonActiveBe or beName@snapshot.	Other-
		 wise, the new environment will	be created from	the  currently
		 booted	environment.

		 If  bectl  is creating	from another boot environment, a snap-
		 shot of that boot environment will be created to clone	from.

       create [-r] beName@snapshot
		 Create	a snapshot of the boot environment named beName.

		 If the	-r flag	is given, a recursive snapshot of the boot en-
		 vironment will	be created.  A snapshot	is  created  for  each
		 descendant dataset of the boot	environment.

		 No new	boot environment is created with this command.

       destroy [-Fo] beName[@snapshot]
		 Destroy  the given beName boot	environment or beName@snapshot
		 snapshot without confirmation,	unlike in beadm(1).   Specify-
		 ing -F	will automatically unmount without confirmation.

		 By  default,  bectl  will  warn that it is not	destroying the
		 origin	of beName.  The	-o flag	may be	specified  to  destroy
		 the origin as well.

       export sourceBe
		 Export	 sourceBe  to  stdout(4).   stdout(4) must be piped or
		 redirected to a file.

       import targetBe
		 Import	targetBe from stdin(4).

       jail [-bU] [{-o key=value | -u key}]... beName [utility [argument ...]]
		 Create	a jail of the given boot environment.  Multiple	-o and
		 -u arguments may be specified.	 -o will set a jail parameter,
		 and -u	will unset a jail parameter.

		 By default, jails are created in interactive mode and /bin/sh
		 is executed within the	jail.  If  utility  is	specified,  it
		 will  be  executed  instead of	/bin/sh.  The jail will	be de-
		 stroyed and the boot environment unmounted when  the  command
		 finishes executing, unless the	-U argument is specified.

		 The  -b argument enables batch	mode, thereby disabling	inter-
		 active	mode.  The -U argument will be ignored in batch	mode.

		 The name, host.hostname, and path must	be  set,  the  default
		 values	are specified below.

		 All key=value pairs are interpreted as	jail parameters	as de-
		 scribed  in  jail(8).	 The  following	default	parameters are
		 provided:

		 allow.mount	      true
		 allow.mount.devfs    true
		 enforce_statfs	      1
		 name		      Set to jail ID.
		 host.hostname	      bootenv
		 path		      Set to  a	 path  in  /tmp	 generated  by
					  libbe(3).

		 All default parameters	may be overwritten.

       list [-DHas] [{-c property | -C property}]

		 Display  all  boot  environments.  The	Active field indicates
		 whether the boot environment is active	now (N); active	on re-
		 boot (R); or both (NR).

		 -a	 Display all datasets.

		 -D	 Display the full space	usage for each	boot  environ-
			 ment,	assuming  all other boot environments were de-
			 stroyed.

		 -H	 Used for scripting.  Do not print headers  and	 sepa-
			 rate  fields  by  a  single  tab instead of arbitrary
			 white space.

		 -s	 Display all snapshots as well.

		 -c property
			 Sort boot environments	by given property  name.   The
			 following properties are supported:

			       name (default output)
			       creation
			       origin
			       used
			       usedds
			       usedsnap
			       usedrefreserv

		 -C property
			 Same as the -c	option,	but displays in	descending or-
			 der.

		 The  -D  option is ignored when either	the -s or -a option is
		 used.

       mount beName [mountpoint]
		 Temporarily mount the boot environment.  Mount	at the	speci-
		 fied mountpoint if provided.

       rename origBeName newBeName
		 Rename	the given origBeName to	the given newBeName.  The boot
		 environment will not be unmounted in order for	this rename to
		 occur.

       ujail {jailId | jailName} beName

       unjail {jailId |	jailName} beName
		 Destroy the jail created from the given boot environment.

       umount [-f] beName

       unmount [-f] beName
		 Unmount the given boot	environment, if	it is mounted.	Speci-
		 fying -f will force the unmount if busy.

       bectl prints usage information if -h or -? is specified.

EXAMPLES
          To fill in with jail	upgrade	example	when behavior is firm.

SEE ALSO
       beinstall.sh(1),	libbe(3), jail(8), zfs(8), zpool(8)

HISTORY
       bectl  is  based	 on  beadm(1) and was implemented as a project for the
       2017 Summer of Code, along with libbe(3).

AUTHORS
       bectl was written by Kyle Kneitinger (kneitinger) <kyle@kneit.in>.

       beadm(1)	was written and	is maintained by
       Slawomir	Wojciech Wojtczak (vermaden) <vermaden@interia.pl>.

       Bryan Drewery (bdrewery)	<bryan@shatow.net> wrote the original beadm(1)
       manual page that	this one is derived from.

FreeBSD	12.1		      September	14, 2019		      BECTL(8)

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

home | help