xref: /freebsd/sbin/bectl/bectl.8 (revision 77688bff1eaeb757cb006eddf5a763a426416bbc)
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*77688bffSMateusz Piotrowski.Dd March 21, 2019
22edbfe3bcSKyle Evans.Dt BECTL 8
2384e61219SKyle Evans.Os
245952343eSKyle Evans.Sh NAME
25edbfe3bcSKyle Evans.Nm bectl
26*77688bffSMateusz 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
35*77688bffSMateusz Piotrowski.Op Fl e Brq Ar nonActiveBe | Ar beName Ns Cm @ Ns Ar snapshot
36*77688bffSMateusz Piotrowski.Ar newBeName
375952343eSKyle Evans.Nm
38d81df689SKyle Evans.Cm destroy
3977b4126cSKyle Evans.Op Fl \&Fo
40*77688bffSMateusz Piotrowski.Ar beName Ns Op Cm @ Ns Ar snapshot
415952343eSKyle Evans.Nm
42d81df689SKyle Evans.Cm export
43d81df689SKyle Evans.Ar sourceBe
4434761e84SKyle Evans.Nm
45d81df689SKyle Evans.Cm import
46d81df689SKyle Evans.Ar targetBe
4734761e84SKyle Evans.Nm
48d81df689SKyle Evans.Cm jail
49*77688bffSMateusz Piotrowski.Op Fl bU
50*77688bffSMateusz Piotrowski.Oo Bro Fl o Ar key Ns Cm = Ns Ar value | Fl u Ar key Brc Oc Ns ...
51*77688bffSMateusz Piotrowski.Ar beName
52cd816834SKyle Evans.Op Ar utility Op Ar argument ...
535952343eSKyle Evans.Nm
54d81df689SKyle Evans.Cm list
55*77688bffSMateusz Piotrowski.Op Fl aDHs
565952343eSKyle Evans.Nm
57d81df689SKyle Evans.Cm mount
58d81df689SKyle Evans.Ar beName
59*77688bffSMateusz Piotrowski.Op Ar mountpoint
605952343eSKyle Evans.Nm
61d81df689SKyle Evans.Cm rename
62d81df689SKyle Evans.Ar origBeName
63d81df689SKyle Evans.Ar newBeName
645952343eSKyle Evans.Nm
65d81df689SKyle Evans.Brq Cm ujail | unjail
66*77688bffSMateusz Piotrowski.Brq Ar jailId | jailName
67*77688bffSMateusz Piotrowski.Ar beName
685952343eSKyle Evans.Nm
69d81df689SKyle Evans.Brq Cm umount | unmount
705952343eSKyle Evans.Op Fl f
71d81df689SKyle Evans.Ar beName
72*77688bffSMateusz Piotrowski.Pp
73*77688bffSMateusz Piotrowski.Nm
74*77688bffSMateusz Piotrowski.Op Fl h\&?
755952343eSKyle Evans.Sh DESCRIPTION
765952343eSKyle EvansThe
775952343eSKyle Evans.Nm
78d81df689SKyle Evanscommand is used to setup and interact with ZFS boot environments, which are
79d81df689SKyle Evansbootable clones of datasets.
805952343eSKyle Evans.Pp
81*77688bffSMateusz PiotrowskiBoot environments
82*77688bffSMateusz Piotrowskiallow the system to be upgraded, while preserving the old system environment in
83d81df689SKyle Evansa separate ZFS dataset.
84*77688bffSMateusz Piotrowski.Pp
855952343eSKyle EvansThe following commands are supported by
865952343eSKyle Evans.Nm :
875952343eSKyle Evans.Bl -tag -width activate
88d81df689SKyle Evans.It Xo
89d81df689SKyle Evans.Cm activate
905952343eSKyle Evans.Op Fl t
91d81df689SKyle Evans.Ar beName
92d81df689SKyle Evans.Xc
935952343eSKyle EvansActivate the given
945952343eSKyle Evans.Ar beName
9584e61219SKyle Evansas the default boot filesystem.
9684e61219SKyle EvansIf the
975952343eSKyle Evans.Op Fl t
985952343eSKyle Evansflag is given, this takes effect only for the next boot.
99d81df689SKyle Evans.It Xo
100d81df689SKyle Evans.Cm create
1015952343eSKyle Evans.Op Fl r
102*77688bffSMateusz Piotrowski.Op Fl e Brq Ar nonActiveBe | Ar beName Ns Cm @ Ns Ar snapshot
103*77688bffSMateusz Piotrowski.Ar newBeName
104d81df689SKyle Evans.Xc
105*77688bffSMateusz PiotrowskiCreate a new boot environment named
106*77688bffSMateusz Piotrowski.Ar newBeName .
107*77688bffSMateusz Piotrowski.Pp
108*77688bffSMateusz PiotrowskiIf the
109*77688bffSMateusz Piotrowski.Fl r
110*77688bffSMateusz Piotrowskiflag is given, a recursive boot environment will be made.
111*77688bffSMateusz Piotrowski.Pp
1125952343eSKyle EvansIf the
113d81df689SKyle Evans.Fl e
114*77688bffSMateusz Piotrowskiflag is specified, the new environment will be cloned from the given
115*77688bffSMateusz Piotrowski.Ar nonActiveBe
116*77688bffSMateusz Piotrowskior
117*77688bffSMateusz Piotrowski.Ar beName Ns Cm @ Ns Ar snapshot .
118*77688bffSMateusz PiotrowskiOtherwise, the new environment will be created from the currently booted environment.
119*77688bffSMateusz Piotrowski.Pp
120*77688bffSMateusz PiotrowskiIf
121*77688bffSMateusz Piotrowski.Nm
122*77688bffSMateusz Piotrowskiis creating from another boot environment, a snapshot of that boot environment will be created to clone from.
123d81df689SKyle Evans.It Xo
124d81df689SKyle Evans.Cm destroy
12577b4126cSKyle Evans.Op Fl \&Fo
126*77688bffSMateusz Piotrowski.Ar beName Ns Op Cm @ Ns Ar snapshot
127d81df689SKyle Evans.Xc
128*77688bffSMateusz PiotrowskiDestroy the given
1295952343eSKyle Evans.Ar beName
1305952343eSKyle Evansboot environment or
131*77688bffSMateusz Piotrowski.Ar beName Ns Cm @ Ns Ar snapshot
1328369ba42SKyle Evanssnapshot without confirmation, unlike in
133*77688bffSMateusz Piotrowski.Xr beadm 1 .
1345952343eSKyle EvansSpecifying
1355952343eSKyle Evans.Fl F
1365952343eSKyle Evanswill automatically unmount without confirmation.
13777b4126cSKyle Evans.Pp
13877b4126cSKyle EvansBy default,
13977b4126cSKyle Evans.Nm
14077b4126cSKyle Evanswill warn that it is not destroying the origin of
14177b4126cSKyle Evans.Ar beName .
14277b4126cSKyle EvansThe
14377b4126cSKyle Evans.Fl o
14477b4126cSKyle Evansflag may be specified to destroy the origin as well.
145d81df689SKyle Evans.It Cm export Ar sourceBe
14634761e84SKyle EvansExport
14734761e84SKyle Evans.Ar sourceBe
14834761e84SKyle Evansto
149*77688bffSMateusz Piotrowski.Xr stdout 4 .
150*77688bffSMateusz Piotrowski.Xr stdout 4
15134761e84SKyle Evansmust be piped or redirected to a file.
152d81df689SKyle Evans.It Cm import Ar targetBe
15334761e84SKyle EvansImport
15434761e84SKyle Evans.Ar targetBe
15534761e84SKyle Evansfrom
156*77688bffSMateusz Piotrowski.Xr stdin 4 .
157d81df689SKyle Evans.It Xo
158d81df689SKyle Evans.Cm jail
159*77688bffSMateusz Piotrowski.Op Fl bU
160*77688bffSMateusz Piotrowski.Oo Bro Fl o Ar key Ns Cm = Ns Ar value | Fl u Ar key Brc Oc Ns ...
161*77688bffSMateusz Piotrowski.Ar beName
162cd816834SKyle Evans.Op Ar utility Op Ar argument ...
163d81df689SKyle Evans.Xc
164*77688bffSMateusz PiotrowskiCreate a jail of the given boot environment.
165d694059fSKyle EvansMultiple
166d694059fSKyle Evans.Fl o
1672a0b8dc2SKyle Evansand
1682a0b8dc2SKyle Evans.Fl u
169d694059fSKyle Evansarguments may be specified.
1702a0b8dc2SKyle Evans.Fl o
1712a0b8dc2SKyle Evanswill set a jail parameter, and
1722a0b8dc2SKyle Evans.Fl u
1732a0b8dc2SKyle Evanswill unset a jail parameter.
174cd816834SKyle Evans.Pp
175cd816834SKyle EvansBy default, jails are created in interactive mode and
176cd816834SKyle Evans.Pa /bin/sh
177cd816834SKyle Evansis
178b509cad4SKyle Evansexecuted within the jail.
179cd816834SKyle EvansIf
180cd816834SKyle Evans.Ar utility
181cd816834SKyle Evansis specified, it will be executed instead of
182cd816834SKyle Evans.Pa /bin/sh .
183db9db0e7SKyle EvansThe jail will be destroyed and the boot environment unmounted when the command
184db9db0e7SKyle Evansfinishes executing, unless the
185db9db0e7SKyle Evans.Fl U
186db9db0e7SKyle Evansargument is specified.
187cd816834SKyle Evans.Pp
188b509cad4SKyle EvansThe
189b509cad4SKyle Evans.Fl b
190b509cad4SKyle Evansargument enables batch mode, thereby disabling interactive mode.
191db9db0e7SKyle EvansThe
192db9db0e7SKyle Evans.Fl U
193db9db0e7SKyle Evansargument will be ignored in batch mode.
1942a0b8dc2SKyle Evans.Pp
1952a0b8dc2SKyle EvansThe
1962a0b8dc2SKyle Evans.Va name ,
1972a0b8dc2SKyle Evans.Va host.hostname ,
1982a0b8dc2SKyle Evansand
1992a0b8dc2SKyle Evans.Va path
2007ce09314SKyle Evansmust be set, the default values are specified below.
2012a0b8dc2SKyle Evans.Pp
2022a0b8dc2SKyle EvansAll
203*77688bffSMateusz Piotrowski.Ar key Ns Cm = Ns Ar value
204d694059fSKyle Evanspairs are interpreted as jail parameters as described in
205d694059fSKyle Evans.Xr jail 8 .
206d694059fSKyle EvansThe following default parameters are provided:
207d81df689SKyle Evans.Bl -column "allow.mount.devfs" ""
208d81df689SKyle Evans.It Va allow.mount Ta Cm true
209d81df689SKyle Evans.It Va allow.mount.devfs Ta Cm true
210d81df689SKyle Evans.It Va enforce_statfs Ta Cm 1
211*77688bffSMateusz Piotrowski.It Va name Ta Set to jail ID.
212d81df689SKyle Evans.It Va host.hostname Ta Va bootenv
213*77688bffSMateusz Piotrowski.It Va path Ta Set to a path in Pa /tmp
214*77688bffSMateusz Piotrowskigenerated by
21584e61219SKyle Evans.Xr libbe 3 .
216d694059fSKyle Evans.El
2175952343eSKyle Evans.Pp
2182a0b8dc2SKyle EvansAll default parameters may be overwritten.
219*77688bffSMateusz Piotrowski.It Cm list Op Fl aDHs
220*77688bffSMateusz PiotrowskiDisplay all boot environments.
221*77688bffSMateusz PiotrowskiThe
222*77688bffSMateusz Piotrowski.Em Active
223*77688bffSMateusz Piotrowskifield indicates whether the boot environment is active now
224*77688bffSMateusz Piotrowski.Pq Em \&N ;
225*77688bffSMateusz Piotrowskiactive on reboot
226*77688bffSMateusz Piotrowski.Pq Em \&R ;
227*77688bffSMateusz Piotrowskior both
228*77688bffSMateusz Piotrowski.Pq Em \&NR .
2295952343eSKyle Evans.Pp
2305952343eSKyle EvansIf
2315952343eSKyle Evans.Fl a
2325952343eSKyle Evansis used, display all datasets.
2335952343eSKyle EvansIf
2345952343eSKyle Evans.Fl D
235d81df689SKyle Evansis used, display the full space usage for each boot environment, assuming all
236d81df689SKyle Evansother boot environments were destroyed.
2375952343eSKyle EvansThe
2385952343eSKyle Evans.Fl H
23984e61219SKyle Evansoption is used for scripting.
240d81df689SKyle EvansIt does not print headers and separate fields by a single tab instead of
241d81df689SKyle Evansarbitrary white space.
2425952343eSKyle EvansIf
2435952343eSKyle Evans.Fl s
2445952343eSKyle Evansis used, display all snapshots as well.
245d81df689SKyle Evans.It Cm mount Ar beName Op Ar mountpoint
2465952343eSKyle EvansTemporarily mount the boot environment.
2475952343eSKyle EvansMount at the specified
2485952343eSKyle Evans.Ar mountpoint
2495952343eSKyle Evansif provided.
250d81df689SKyle Evans.It Cm rename Ar origBeName newBeName
251*77688bffSMateusz PiotrowskiRename the given
2525952343eSKyle Evans.Ar origBeName
2535952343eSKyle Evansto the given
254d81df689SKyle Evans.Ar newBeName .
2558369ba42SKyle EvansThe boot environment will not be unmounted in order for this rename to occur.
256*77688bffSMateusz Piotrowski.It Cm ujail Bro Ar jailId | jailName Brc Ar beName
257*77688bffSMateusz Piotrowski.It Cm unjail Bro Ar jailId | jailName Brc Ar beName
258*77688bffSMateusz PiotrowskiDestroy the jail created from the given boot environment.
259*77688bffSMateusz Piotrowski.It Xo
260*77688bffSMateusz Piotrowski.Cm umount
261*77688bffSMateusz Piotrowski.Op Fl f
262*77688bffSMateusz Piotrowski.Ar beName
263*77688bffSMateusz Piotrowski.Xc
264d81df689SKyle Evans.It Xo
265d81df689SKyle Evans.Cm unmount
2665952343eSKyle Evans.Op Fl f
267d81df689SKyle Evans.Ar beName
268d81df689SKyle Evans.Xc
2695952343eSKyle EvansUnmount the given boot environment, if it is mounted.
2705952343eSKyle EvansSpecifying
2715952343eSKyle Evans.Fl f
2725952343eSKyle Evanswill force the unmount if busy.
2735952343eSKyle Evans.El
274*77688bffSMateusz Piotrowski.Pp
275*77688bffSMateusz Piotrowski.Nm
276*77688bffSMateusz Piotrowskiprints usage information if
277*77688bffSMateusz Piotrowski.Fl h
278*77688bffSMateusz Piotrowskior
279*77688bffSMateusz Piotrowski.Fl \&?
280*77688bffSMateusz Piotrowskiis specified.
2815952343eSKyle Evans.Sh EXAMPLES
2825952343eSKyle Evans.Bl -bullet
2835952343eSKyle Evans.It
2845952343eSKyle EvansTo fill in with jail upgrade example when behavior is firm.
28584e61219SKyle Evans.El
2865952343eSKyle Evans.Sh SEE ALSO
287*77688bffSMateusz Piotrowski.Xr beinstall.sh 1 ,
288f5c8cb4cSMateusz Piotrowski.Xr libbe 3 ,
2895952343eSKyle Evans.Xr jail 8 ,
2905952343eSKyle Evans.Xr zfs 8 ,
2915952343eSKyle Evans.Xr zpool 8
2925952343eSKyle Evans.Sh HISTORY
2935952343eSKyle Evans.Nm
2945952343eSKyle Evansis based on
295*77688bffSMateusz Piotrowski.Xr beadm 1
2965952343eSKyle Evansand was implemented as a project for the 2017 Summer of Code, along with
2975952343eSKyle Evans.Xr libbe 3 .
2985952343eSKyle Evans.Sh AUTHORS
299d81df689SKyle Evans.Nm
300d81df689SKyle Evanswas written by
301d81df689SKyle Evans.An Kyle Kneitinger (kneitinger) Aq Mt kyle@kneit.in .
3025952343eSKyle Evans.Pp
303*77688bffSMateusz Piotrowski.Xr beadm 1
304d81df689SKyle Evanswas written and is maintained by
305d81df689SKyle Evans.An Slawomir Wojciech Wojtczak (vermaden) Aq Mt vermaden@interia.pl .
3065952343eSKyle Evans.Pp
30734761e84SKyle Evans.An Bryan Drewery (bdrewery) Aq Mt bryan@shatow.net
308d81df689SKyle Evanswrote the original
309*77688bffSMateusz Piotrowski.Xr beadm 1
3105952343eSKyle Evansmanual page that this one is derived from.
311