xref: /freebsd/sbin/bectl/bectl.8 (revision 55ece394c220d9dfdc521a028435257b35815918)
15952343eSKyle Evans.\"
2b179da01SKyle Evans.\" SPDX-License-Identifier: BSD-2-Clause-FreeBSD
3b179da01SKyle Evans.\"
4b179da01SKyle Evans.\" Copyright (c) 2017 Kyle J. Kneitinger <kyle@kneit.in>
5b179da01SKyle Evans.\" All rights reserved.
65952343eSKyle Evans.\"
75952343eSKyle Evans.\" Redistribution and use in source and binary forms, with or without
85952343eSKyle Evans.\" modification, are permitted provided that the following conditions
95952343eSKyle Evans.\" are met:
105952343eSKyle Evans.\" 1. Redistributions of source code must retain the above copyright
115952343eSKyle Evans.\"    notice, this list of conditions and the following disclaimer.
125952343eSKyle Evans.\" 2. Redistributions in binary form must reproduce the above copyright
135952343eSKyle Evans.\"    notice, this list of conditions and the following disclaimer in the
145952343eSKyle Evans.\"    documentation and/or other materials provided with the distribution.
155952343eSKyle Evans.\"
165952343eSKyle Evans.\"
175952343eSKyle Evans.\"     @(#)be.1
18b6e7c421SKyle Evans.\"
195952343eSKyle Evans.\" $FreeBSD$
205952343eSKyle Evans.\"
21*55ece394SKyle Evans.Dd May 12, 2019
22edbfe3bcSKyle Evans.Dt BECTL 8
2384e61219SKyle Evans.Os
245952343eSKyle Evans.Sh NAME
25edbfe3bcSKyle Evans.Nm bectl
2677688bffSMateusz Piotrowski.Nd Utility to manage boot environments on ZFS
275952343eSKyle Evans.Sh SYNOPSIS
285952343eSKyle Evans.Nm
29d81df689SKyle Evans.Cm activate
305952343eSKyle Evans.Op Fl t
31d81df689SKyle Evans.Ar beName
325952343eSKyle Evans.Nm
33d81df689SKyle Evans.Cm create
345952343eSKyle Evans.Op Fl r
3577688bffSMateusz Piotrowski.Op Fl e Brq Ar nonActiveBe | Ar beName Ns Cm @ Ns Ar snapshot
3677688bffSMateusz Piotrowski.Ar newBeName
375952343eSKyle Evans.Nm
38*55ece394SKyle Evans.Cm create
39*55ece394SKyle Evans.Op Fl r
40*55ece394SKyle Evans.Ar beName@snapshot
41*55ece394SKyle Evans.Nm
42d81df689SKyle Evans.Cm destroy
4377b4126cSKyle Evans.Op Fl \&Fo
4477688bffSMateusz Piotrowski.Ar beName Ns Op Cm @ Ns Ar snapshot
455952343eSKyle Evans.Nm
46d81df689SKyle Evans.Cm export
47d81df689SKyle Evans.Ar sourceBe
4834761e84SKyle Evans.Nm
49d81df689SKyle Evans.Cm import
50d81df689SKyle Evans.Ar targetBe
5134761e84SKyle Evans.Nm
52d81df689SKyle Evans.Cm jail
5377688bffSMateusz Piotrowski.Op Fl bU
5477688bffSMateusz Piotrowski.Oo Bro Fl o Ar key Ns Cm = Ns Ar value | Fl u Ar key Brc Oc Ns ...
5577688bffSMateusz Piotrowski.Ar beName
56cd816834SKyle Evans.Op Ar utility Op Ar argument ...
575952343eSKyle Evans.Nm
58d81df689SKyle Evans.Cm list
5977688bffSMateusz Piotrowski.Op Fl aDHs
605952343eSKyle Evans.Nm
61d81df689SKyle Evans.Cm mount
62d81df689SKyle Evans.Ar beName
6377688bffSMateusz Piotrowski.Op Ar mountpoint
645952343eSKyle Evans.Nm
65d81df689SKyle Evans.Cm rename
66d81df689SKyle Evans.Ar origBeName
67d81df689SKyle Evans.Ar newBeName
685952343eSKyle Evans.Nm
69d81df689SKyle Evans.Brq Cm ujail | unjail
7077688bffSMateusz Piotrowski.Brq Ar jailId | jailName
7177688bffSMateusz Piotrowski.Ar beName
725952343eSKyle Evans.Nm
73d81df689SKyle Evans.Brq Cm umount | unmount
745952343eSKyle Evans.Op Fl f
75d81df689SKyle Evans.Ar beName
7677688bffSMateusz Piotrowski.Pp
7777688bffSMateusz Piotrowski.Nm
7877688bffSMateusz Piotrowski.Op Fl h\&?
795952343eSKyle Evans.Sh DESCRIPTION
805952343eSKyle EvansThe
815952343eSKyle Evans.Nm
82d81df689SKyle Evanscommand is used to setup and interact with ZFS boot environments, which are
83d81df689SKyle Evansbootable clones of datasets.
845952343eSKyle Evans.Pp
8577688bffSMateusz PiotrowskiBoot environments
8677688bffSMateusz Piotrowskiallow the system to be upgraded, while preserving the old system environment in
87d81df689SKyle Evansa separate ZFS dataset.
8877688bffSMateusz Piotrowski.Pp
895952343eSKyle EvansThe following commands are supported by
905952343eSKyle Evans.Nm :
915952343eSKyle Evans.Bl -tag -width activate
92d81df689SKyle Evans.It Xo
93d81df689SKyle Evans.Cm activate
945952343eSKyle Evans.Op Fl t
95d81df689SKyle Evans.Ar beName
96d81df689SKyle Evans.Xc
975952343eSKyle EvansActivate the given
985952343eSKyle Evans.Ar beName
9984e61219SKyle Evansas the default boot filesystem.
10084e61219SKyle EvansIf the
1015952343eSKyle Evans.Op Fl t
1025952343eSKyle Evansflag is given, this takes effect only for the next boot.
103d81df689SKyle Evans.It Xo
104d81df689SKyle Evans.Cm create
1055952343eSKyle Evans.Op Fl r
10677688bffSMateusz Piotrowski.Op Fl e Brq Ar nonActiveBe | Ar beName Ns Cm @ Ns Ar snapshot
10777688bffSMateusz Piotrowski.Ar newBeName
108d81df689SKyle Evans.Xc
10977688bffSMateusz PiotrowskiCreate a new boot environment named
11077688bffSMateusz Piotrowski.Ar newBeName .
11177688bffSMateusz Piotrowski.Pp
11277688bffSMateusz PiotrowskiIf the
11377688bffSMateusz Piotrowski.Fl r
11477688bffSMateusz Piotrowskiflag is given, a recursive boot environment will be made.
11577688bffSMateusz Piotrowski.Pp
1165952343eSKyle EvansIf the
117d81df689SKyle Evans.Fl e
11877688bffSMateusz Piotrowskiflag is specified, the new environment will be cloned from the given
11977688bffSMateusz Piotrowski.Ar nonActiveBe
12077688bffSMateusz Piotrowskior
12177688bffSMateusz Piotrowski.Ar beName Ns Cm @ Ns Ar snapshot .
12277688bffSMateusz PiotrowskiOtherwise, the new environment will be created from the currently booted environment.
12377688bffSMateusz Piotrowski.Pp
12477688bffSMateusz PiotrowskiIf
12577688bffSMateusz Piotrowski.Nm
12677688bffSMateusz Piotrowskiis creating from another boot environment, a snapshot of that boot environment will be created to clone from.
127d81df689SKyle Evans.It Xo
128*55ece394SKyle Evans.Cm create
129*55ece394SKyle Evans.Op Fl r
130*55ece394SKyle Evans.Ar beName@snapshot
131*55ece394SKyle Evans.Xc
132*55ece394SKyle EvansCreate a snapshot of the boot environment named
133*55ece394SKyle Evans.Ar beName .
134*55ece394SKyle Evans.Pp
135*55ece394SKyle EvansIf the
136*55ece394SKyle Evans.Fl r
137*55ece394SKyle Evansflag is given, a recursive snapshot of the boot environment will be created.
138*55ece394SKyle EvansA snapshot is created for each descendant dataset of the boot environment.
139*55ece394SKyle Evans.Pp
140*55ece394SKyle EvansNo new boot environment is created with this command.
141*55ece394SKyle Evans.It Xo
142d81df689SKyle Evans.Cm destroy
14377b4126cSKyle Evans.Op Fl \&Fo
14477688bffSMateusz Piotrowski.Ar beName Ns Op Cm @ Ns Ar snapshot
145d81df689SKyle Evans.Xc
14677688bffSMateusz PiotrowskiDestroy the given
1475952343eSKyle Evans.Ar beName
1485952343eSKyle Evansboot environment or
14977688bffSMateusz Piotrowski.Ar beName Ns Cm @ Ns Ar snapshot
1508369ba42SKyle Evanssnapshot without confirmation, unlike in
15177688bffSMateusz Piotrowski.Xr beadm 1 .
1525952343eSKyle EvansSpecifying
1535952343eSKyle Evans.Fl F
1545952343eSKyle Evanswill automatically unmount without confirmation.
15577b4126cSKyle Evans.Pp
15677b4126cSKyle EvansBy default,
15777b4126cSKyle Evans.Nm
15877b4126cSKyle Evanswill warn that it is not destroying the origin of
15977b4126cSKyle Evans.Ar beName .
16077b4126cSKyle EvansThe
16177b4126cSKyle Evans.Fl o
16277b4126cSKyle Evansflag may be specified to destroy the origin as well.
163d81df689SKyle Evans.It Cm export Ar sourceBe
16434761e84SKyle EvansExport
16534761e84SKyle Evans.Ar sourceBe
16634761e84SKyle Evansto
16777688bffSMateusz Piotrowski.Xr stdout 4 .
16877688bffSMateusz Piotrowski.Xr stdout 4
16934761e84SKyle Evansmust be piped or redirected to a file.
170d81df689SKyle Evans.It Cm import Ar targetBe
17134761e84SKyle EvansImport
17234761e84SKyle Evans.Ar targetBe
17334761e84SKyle Evansfrom
17477688bffSMateusz Piotrowski.Xr stdin 4 .
175d81df689SKyle Evans.It Xo
176d81df689SKyle Evans.Cm jail
17777688bffSMateusz Piotrowski.Op Fl bU
17877688bffSMateusz Piotrowski.Oo Bro Fl o Ar key Ns Cm = Ns Ar value | Fl u Ar key Brc Oc Ns ...
17977688bffSMateusz Piotrowski.Ar beName
180cd816834SKyle Evans.Op Ar utility Op Ar argument ...
181d81df689SKyle Evans.Xc
18277688bffSMateusz PiotrowskiCreate a jail of the given boot environment.
183d694059fSKyle EvansMultiple
184d694059fSKyle Evans.Fl o
1852a0b8dc2SKyle Evansand
1862a0b8dc2SKyle Evans.Fl u
187d694059fSKyle Evansarguments may be specified.
1882a0b8dc2SKyle Evans.Fl o
1892a0b8dc2SKyle Evanswill set a jail parameter, and
1902a0b8dc2SKyle Evans.Fl u
1912a0b8dc2SKyle Evanswill unset a jail parameter.
192cd816834SKyle Evans.Pp
193cd816834SKyle EvansBy default, jails are created in interactive mode and
194cd816834SKyle Evans.Pa /bin/sh
195cd816834SKyle Evansis
196b509cad4SKyle Evansexecuted within the jail.
197cd816834SKyle EvansIf
198cd816834SKyle Evans.Ar utility
199cd816834SKyle Evansis specified, it will be executed instead of
200cd816834SKyle Evans.Pa /bin/sh .
201db9db0e7SKyle EvansThe jail will be destroyed and the boot environment unmounted when the command
202db9db0e7SKyle Evansfinishes executing, unless the
203db9db0e7SKyle Evans.Fl U
204db9db0e7SKyle Evansargument is specified.
205cd816834SKyle Evans.Pp
206b509cad4SKyle EvansThe
207b509cad4SKyle Evans.Fl b
208b509cad4SKyle Evansargument enables batch mode, thereby disabling interactive mode.
209db9db0e7SKyle EvansThe
210db9db0e7SKyle Evans.Fl U
211db9db0e7SKyle Evansargument will be ignored in batch mode.
2122a0b8dc2SKyle Evans.Pp
2132a0b8dc2SKyle EvansThe
2142a0b8dc2SKyle Evans.Va name ,
2152a0b8dc2SKyle Evans.Va host.hostname ,
2162a0b8dc2SKyle Evansand
2172a0b8dc2SKyle Evans.Va path
2187ce09314SKyle Evansmust be set, the default values are specified below.
2192a0b8dc2SKyle Evans.Pp
2202a0b8dc2SKyle EvansAll
22177688bffSMateusz Piotrowski.Ar key Ns Cm = Ns Ar value
222d694059fSKyle Evanspairs are interpreted as jail parameters as described in
223d694059fSKyle Evans.Xr jail 8 .
224d694059fSKyle EvansThe following default parameters are provided:
225d81df689SKyle Evans.Bl -column "allow.mount.devfs" ""
226d81df689SKyle Evans.It Va allow.mount Ta Cm true
227d81df689SKyle Evans.It Va allow.mount.devfs Ta Cm true
228d81df689SKyle Evans.It Va enforce_statfs Ta Cm 1
22977688bffSMateusz Piotrowski.It Va name Ta Set to jail ID.
230d81df689SKyle Evans.It Va host.hostname Ta Va bootenv
23177688bffSMateusz Piotrowski.It Va path Ta Set to a path in Pa /tmp
23277688bffSMateusz Piotrowskigenerated by
23384e61219SKyle Evans.Xr libbe 3 .
234d694059fSKyle Evans.El
2355952343eSKyle Evans.Pp
2362a0b8dc2SKyle EvansAll default parameters may be overwritten.
23777688bffSMateusz Piotrowski.It Cm list Op Fl aDHs
23877688bffSMateusz PiotrowskiDisplay all boot environments.
23977688bffSMateusz PiotrowskiThe
24077688bffSMateusz Piotrowski.Em Active
24177688bffSMateusz Piotrowskifield indicates whether the boot environment is active now
24277688bffSMateusz Piotrowski.Pq Em \&N ;
24377688bffSMateusz Piotrowskiactive on reboot
24477688bffSMateusz Piotrowski.Pq Em \&R ;
24577688bffSMateusz Piotrowskior both
24677688bffSMateusz Piotrowski.Pq Em \&NR .
2475952343eSKyle Evans.Pp
2485952343eSKyle EvansIf
2495952343eSKyle Evans.Fl a
2505952343eSKyle Evansis used, display all datasets.
2515952343eSKyle EvansIf
2525952343eSKyle Evans.Fl D
253d81df689SKyle Evansis used, display the full space usage for each boot environment, assuming all
254d81df689SKyle Evansother boot environments were destroyed.
2555952343eSKyle EvansThe
2565952343eSKyle Evans.Fl H
25784e61219SKyle Evansoption is used for scripting.
258d81df689SKyle EvansIt does not print headers and separate fields by a single tab instead of
259d81df689SKyle Evansarbitrary white space.
2605952343eSKyle EvansIf
2615952343eSKyle Evans.Fl s
2625952343eSKyle Evansis used, display all snapshots as well.
263d81df689SKyle Evans.It Cm mount Ar beName Op Ar mountpoint
2645952343eSKyle EvansTemporarily mount the boot environment.
2655952343eSKyle EvansMount at the specified
2665952343eSKyle Evans.Ar mountpoint
2675952343eSKyle Evansif provided.
268d81df689SKyle Evans.It Cm rename Ar origBeName newBeName
26977688bffSMateusz PiotrowskiRename the given
2705952343eSKyle Evans.Ar origBeName
2715952343eSKyle Evansto the given
272d81df689SKyle Evans.Ar newBeName .
2738369ba42SKyle EvansThe boot environment will not be unmounted in order for this rename to occur.
27477688bffSMateusz Piotrowski.It Cm ujail Bro Ar jailId | jailName Brc Ar beName
27577688bffSMateusz Piotrowski.It Cm unjail Bro Ar jailId | jailName Brc Ar beName
27677688bffSMateusz PiotrowskiDestroy the jail created from the given boot environment.
27777688bffSMateusz Piotrowski.It Xo
27877688bffSMateusz Piotrowski.Cm umount
27977688bffSMateusz Piotrowski.Op Fl f
28077688bffSMateusz Piotrowski.Ar beName
28177688bffSMateusz Piotrowski.Xc
282d81df689SKyle Evans.It Xo
283d81df689SKyle Evans.Cm unmount
2845952343eSKyle Evans.Op Fl f
285d81df689SKyle Evans.Ar beName
286d81df689SKyle Evans.Xc
2875952343eSKyle EvansUnmount the given boot environment, if it is mounted.
2885952343eSKyle EvansSpecifying
2895952343eSKyle Evans.Fl f
2905952343eSKyle Evanswill force the unmount if busy.
2915952343eSKyle Evans.El
29277688bffSMateusz Piotrowski.Pp
29377688bffSMateusz Piotrowski.Nm
29477688bffSMateusz Piotrowskiprints usage information if
29577688bffSMateusz Piotrowski.Fl h
29677688bffSMateusz Piotrowskior
29777688bffSMateusz Piotrowski.Fl \&?
29877688bffSMateusz Piotrowskiis specified.
2995952343eSKyle Evans.Sh EXAMPLES
3005952343eSKyle Evans.Bl -bullet
3015952343eSKyle Evans.It
3025952343eSKyle EvansTo fill in with jail upgrade example when behavior is firm.
30384e61219SKyle Evans.El
3045952343eSKyle Evans.Sh SEE ALSO
30577688bffSMateusz Piotrowski.Xr beinstall.sh 1 ,
306f5c8cb4cSMateusz Piotrowski.Xr libbe 3 ,
3075952343eSKyle Evans.Xr jail 8 ,
3085952343eSKyle Evans.Xr zfs 8 ,
3095952343eSKyle Evans.Xr zpool 8
3105952343eSKyle Evans.Sh HISTORY
3115952343eSKyle Evans.Nm
3125952343eSKyle Evansis based on
31377688bffSMateusz Piotrowski.Xr beadm 1
3145952343eSKyle Evansand was implemented as a project for the 2017 Summer of Code, along with
3155952343eSKyle Evans.Xr libbe 3 .
3165952343eSKyle Evans.Sh AUTHORS
317d81df689SKyle Evans.Nm
318d81df689SKyle Evanswas written by
319d81df689SKyle Evans.An Kyle Kneitinger (kneitinger) Aq Mt kyle@kneit.in .
3205952343eSKyle Evans.Pp
32177688bffSMateusz Piotrowski.Xr beadm 1
322d81df689SKyle Evanswas written and is maintained by
323d81df689SKyle Evans.An Slawomir Wojciech Wojtczak (vermaden) Aq Mt vermaden@interia.pl .
3245952343eSKyle Evans.Pp
32534761e84SKyle Evans.An Bryan Drewery (bdrewery) Aq Mt bryan@shatow.net
326d81df689SKyle Evanswrote the original
32777688bffSMateusz Piotrowski.Xr beadm 1
3285952343eSKyle Evansmanual page that this one is derived from.
329