xref: /freebsd/sbin/bectl/bectl.8 (revision 490e13c1403f863296eed0915c270c8781deaf38)
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*490e13c1SKyle Evans.Dd September 11, 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
33*490e13c1SKyle Evans.Cm check
34*490e13c1SKyle Evans.Nm
35d81df689SKyle Evans.Cm create
365952343eSKyle Evans.Op Fl r
3777688bffSMateusz Piotrowski.Op Fl e Brq Ar nonActiveBe | Ar beName Ns Cm @ Ns Ar snapshot
3877688bffSMateusz Piotrowski.Ar newBeName
395952343eSKyle Evans.Nm
4055ece394SKyle Evans.Cm create
4155ece394SKyle Evans.Op Fl r
4255ece394SKyle Evans.Ar beName@snapshot
4355ece394SKyle Evans.Nm
44d81df689SKyle Evans.Cm destroy
4577b4126cSKyle Evans.Op Fl \&Fo
4677688bffSMateusz Piotrowski.Ar beName Ns Op Cm @ Ns Ar snapshot
475952343eSKyle Evans.Nm
48d81df689SKyle Evans.Cm export
49d81df689SKyle Evans.Ar sourceBe
5034761e84SKyle Evans.Nm
51d81df689SKyle Evans.Cm import
52d81df689SKyle Evans.Ar targetBe
5334761e84SKyle Evans.Nm
54d81df689SKyle Evans.Cm jail
5577688bffSMateusz Piotrowski.Op Fl bU
5677688bffSMateusz Piotrowski.Oo Bro Fl o Ar key Ns Cm = Ns Ar value | Fl u Ar key Brc Oc Ns ...
5777688bffSMateusz Piotrowski.Ar beName
58cd816834SKyle Evans.Op Ar utility Op Ar argument ...
595952343eSKyle Evans.Nm
60d81df689SKyle Evans.Cm list
6177688bffSMateusz Piotrowski.Op Fl aDHs
62f0298be0SKyle Evans.Op Fl c Ar property
63f0298be0SKyle Evans.Op Fl C Ar property
64f0298be0SKyle Evans.Oo Bro Fl c Ar property | Fl C Ar property Brc Oc
655952343eSKyle Evans.Nm
66d81df689SKyle Evans.Cm mount
67d81df689SKyle Evans.Ar beName
6877688bffSMateusz Piotrowski.Op Ar mountpoint
695952343eSKyle Evans.Nm
70d81df689SKyle Evans.Cm rename
71d81df689SKyle Evans.Ar origBeName
72d81df689SKyle Evans.Ar newBeName
735952343eSKyle Evans.Nm
74d81df689SKyle Evans.Brq Cm ujail | unjail
7577688bffSMateusz Piotrowski.Brq Ar jailId | jailName
7677688bffSMateusz Piotrowski.Ar beName
775952343eSKyle Evans.Nm
78d81df689SKyle Evans.Brq Cm umount | unmount
795952343eSKyle Evans.Op Fl f
80d81df689SKyle Evans.Ar beName
8177688bffSMateusz Piotrowski.Pp
8277688bffSMateusz Piotrowski.Nm
8377688bffSMateusz Piotrowski.Op Fl h\&?
845952343eSKyle Evans.Sh DESCRIPTION
855952343eSKyle EvansThe
865952343eSKyle Evans.Nm
87d81df689SKyle Evanscommand is used to setup and interact with ZFS boot environments, which are
88d81df689SKyle Evansbootable clones of datasets.
895952343eSKyle Evans.Pp
9077688bffSMateusz PiotrowskiBoot environments
9177688bffSMateusz Piotrowskiallow the system to be upgraded, while preserving the old system environment in
92d81df689SKyle Evansa separate ZFS dataset.
9377688bffSMateusz Piotrowski.Pp
945952343eSKyle EvansThe following commands are supported by
955952343eSKyle Evans.Nm :
965952343eSKyle Evans.Bl -tag -width activate
97d81df689SKyle Evans.It Xo
98d81df689SKyle Evans.Cm activate
995952343eSKyle Evans.Op Fl t
100d81df689SKyle Evans.Ar beName
101d81df689SKyle Evans.Xc
1025952343eSKyle EvansActivate the given
1035952343eSKyle Evans.Ar beName
10484e61219SKyle Evansas the default boot filesystem.
10584e61219SKyle EvansIf the
1065952343eSKyle Evans.Op Fl t
1075952343eSKyle Evansflag is given, this takes effect only for the next boot.
108d81df689SKyle Evans.It Xo
109*490e13c1SKyle Evans.Cm check
110*490e13c1SKyle Evans.Xc
111*490e13c1SKyle EvansPerforms a silent sanity check on the current system.
112*490e13c1SKyle EvansIf boot environments are supported and used,
113*490e13c1SKyle Evans.Nm
114*490e13c1SKyle Evanswill exit with a status code of 0.
115*490e13c1SKyle EvansAny other status code is not currently defined and may, in the future, grow
116*490e13c1SKyle Evansspecial meaning for different degrees of sanity check failures.
117*490e13c1SKyle Evans.It Xo
118d81df689SKyle Evans.Cm create
1195952343eSKyle Evans.Op Fl r
12077688bffSMateusz Piotrowski.Op Fl e Brq Ar nonActiveBe | Ar beName Ns Cm @ Ns Ar snapshot
12177688bffSMateusz Piotrowski.Ar newBeName
122d81df689SKyle Evans.Xc
12377688bffSMateusz PiotrowskiCreate a new boot environment named
12477688bffSMateusz Piotrowski.Ar newBeName .
12577688bffSMateusz Piotrowski.Pp
12677688bffSMateusz PiotrowskiIf the
12777688bffSMateusz Piotrowski.Fl r
12877688bffSMateusz Piotrowskiflag is given, a recursive boot environment will be made.
12977688bffSMateusz Piotrowski.Pp
1305952343eSKyle EvansIf the
131d81df689SKyle Evans.Fl e
13277688bffSMateusz Piotrowskiflag is specified, the new environment will be cloned from the given
13377688bffSMateusz Piotrowski.Ar nonActiveBe
13477688bffSMateusz Piotrowskior
13577688bffSMateusz Piotrowski.Ar beName Ns Cm @ Ns Ar snapshot .
13677688bffSMateusz PiotrowskiOtherwise, the new environment will be created from the currently booted environment.
13777688bffSMateusz Piotrowski.Pp
13877688bffSMateusz PiotrowskiIf
13977688bffSMateusz Piotrowski.Nm
14077688bffSMateusz Piotrowskiis creating from another boot environment, a snapshot of that boot environment will be created to clone from.
141d81df689SKyle Evans.It Xo
14255ece394SKyle Evans.Cm create
14355ece394SKyle Evans.Op Fl r
14455ece394SKyle Evans.Ar beName@snapshot
14555ece394SKyle Evans.Xc
14655ece394SKyle EvansCreate a snapshot of the boot environment named
14755ece394SKyle Evans.Ar beName .
14855ece394SKyle Evans.Pp
14955ece394SKyle EvansIf the
15055ece394SKyle Evans.Fl r
15155ece394SKyle Evansflag is given, a recursive snapshot of the boot environment will be created.
15255ece394SKyle EvansA snapshot is created for each descendant dataset of the boot environment.
15355ece394SKyle Evans.Pp
15455ece394SKyle EvansNo new boot environment is created with this command.
15555ece394SKyle Evans.It Xo
156d81df689SKyle Evans.Cm destroy
15777b4126cSKyle Evans.Op Fl \&Fo
15877688bffSMateusz Piotrowski.Ar beName Ns Op Cm @ Ns Ar snapshot
159d81df689SKyle Evans.Xc
16077688bffSMateusz PiotrowskiDestroy the given
1615952343eSKyle Evans.Ar beName
1625952343eSKyle Evansboot environment or
16377688bffSMateusz Piotrowski.Ar beName Ns Cm @ Ns Ar snapshot
1648369ba42SKyle Evanssnapshot without confirmation, unlike in
16577688bffSMateusz Piotrowski.Xr beadm 1 .
1665952343eSKyle EvansSpecifying
1675952343eSKyle Evans.Fl F
1685952343eSKyle Evanswill automatically unmount without confirmation.
16977b4126cSKyle Evans.Pp
17077b4126cSKyle EvansBy default,
17177b4126cSKyle Evans.Nm
17277b4126cSKyle Evanswill warn that it is not destroying the origin of
17377b4126cSKyle Evans.Ar beName .
17477b4126cSKyle EvansThe
17577b4126cSKyle Evans.Fl o
17677b4126cSKyle Evansflag may be specified to destroy the origin as well.
177d81df689SKyle Evans.It Cm export Ar sourceBe
17834761e84SKyle EvansExport
17934761e84SKyle Evans.Ar sourceBe
18034761e84SKyle Evansto
18177688bffSMateusz Piotrowski.Xr stdout 4 .
18277688bffSMateusz Piotrowski.Xr stdout 4
18334761e84SKyle Evansmust be piped or redirected to a file.
184d81df689SKyle Evans.It Cm import Ar targetBe
18534761e84SKyle EvansImport
18634761e84SKyle Evans.Ar targetBe
18734761e84SKyle Evansfrom
18877688bffSMateusz Piotrowski.Xr stdin 4 .
189d81df689SKyle Evans.It Xo
190d81df689SKyle Evans.Cm jail
19177688bffSMateusz Piotrowski.Op Fl bU
19277688bffSMateusz Piotrowski.Oo Bro Fl o Ar key Ns Cm = Ns Ar value | Fl u Ar key Brc Oc Ns ...
19377688bffSMateusz Piotrowski.Ar beName
194cd816834SKyle Evans.Op Ar utility Op Ar argument ...
195d81df689SKyle Evans.Xc
19677688bffSMateusz PiotrowskiCreate a jail of the given boot environment.
197d694059fSKyle EvansMultiple
198d694059fSKyle Evans.Fl o
1992a0b8dc2SKyle Evansand
2002a0b8dc2SKyle Evans.Fl u
201d694059fSKyle Evansarguments may be specified.
2022a0b8dc2SKyle Evans.Fl o
2032a0b8dc2SKyle Evanswill set a jail parameter, and
2042a0b8dc2SKyle Evans.Fl u
2052a0b8dc2SKyle Evanswill unset a jail parameter.
206cd816834SKyle Evans.Pp
207cd816834SKyle EvansBy default, jails are created in interactive mode and
208cd816834SKyle Evans.Pa /bin/sh
209cd816834SKyle Evansis
210b509cad4SKyle Evansexecuted within the jail.
211cd816834SKyle EvansIf
212cd816834SKyle Evans.Ar utility
213cd816834SKyle Evansis specified, it will be executed instead of
214cd816834SKyle Evans.Pa /bin/sh .
215db9db0e7SKyle EvansThe jail will be destroyed and the boot environment unmounted when the command
216db9db0e7SKyle Evansfinishes executing, unless the
217db9db0e7SKyle Evans.Fl U
218db9db0e7SKyle Evansargument is specified.
219cd816834SKyle Evans.Pp
220b509cad4SKyle EvansThe
221b509cad4SKyle Evans.Fl b
222b509cad4SKyle Evansargument enables batch mode, thereby disabling interactive mode.
223db9db0e7SKyle EvansThe
224db9db0e7SKyle Evans.Fl U
225db9db0e7SKyle Evansargument will be ignored in batch mode.
2262a0b8dc2SKyle Evans.Pp
2272a0b8dc2SKyle EvansThe
2282a0b8dc2SKyle Evans.Va name ,
2292a0b8dc2SKyle Evans.Va host.hostname ,
2302a0b8dc2SKyle Evansand
2312a0b8dc2SKyle Evans.Va path
2327ce09314SKyle Evansmust be set, the default values are specified below.
2332a0b8dc2SKyle Evans.Pp
2342a0b8dc2SKyle EvansAll
23577688bffSMateusz Piotrowski.Ar key Ns Cm = Ns Ar value
236d694059fSKyle Evanspairs are interpreted as jail parameters as described in
237d694059fSKyle Evans.Xr jail 8 .
238d694059fSKyle EvansThe following default parameters are provided:
239d81df689SKyle Evans.Bl -column "allow.mount.devfs" ""
240d81df689SKyle Evans.It Va allow.mount Ta Cm true
241d81df689SKyle Evans.It Va allow.mount.devfs Ta Cm true
242d81df689SKyle Evans.It Va enforce_statfs Ta Cm 1
24377688bffSMateusz Piotrowski.It Va name Ta Set to jail ID.
244d81df689SKyle Evans.It Va host.hostname Ta Va bootenv
24577688bffSMateusz Piotrowski.It Va path Ta Set to a path in Pa /tmp
24677688bffSMateusz Piotrowskigenerated by
24784e61219SKyle Evans.Xr libbe 3 .
248d694059fSKyle Evans.El
2495952343eSKyle Evans.Pp
2502a0b8dc2SKyle EvansAll default parameters may be overwritten.
251f0298be0SKyle Evans.It Xo
252f0298be0SKyle Evans.Cm list
253f0298be0SKyle Evans.Op Fl DHas
254f0298be0SKyle Evans.Oo Bro Fl c Ar property | Fl C Ar property Brc Oc
255f0298be0SKyle Evans.Xc
256f0298be0SKyle Evans.Pp
25777688bffSMateusz PiotrowskiDisplay all boot environments.
25877688bffSMateusz PiotrowskiThe
25977688bffSMateusz Piotrowski.Em Active
26077688bffSMateusz Piotrowskifield indicates whether the boot environment is active now
26177688bffSMateusz Piotrowski.Pq Em \&N ;
26277688bffSMateusz Piotrowskiactive on reboot
26377688bffSMateusz Piotrowski.Pq Em \&R ;
26477688bffSMateusz Piotrowskior both
26577688bffSMateusz Piotrowski.Pq Em \&NR .
2665952343eSKyle Evans.Pp
267f0298be0SKyle Evans.Bl -tag -width indent
268f0298be0SKyle Evans.It Fl a
269f0298be0SKyle EvansDisplay all datasets.
270f0298be0SKyle Evans.It Fl D
271f0298be0SKyle EvansDisplay the full space usage for each boot environment, assuming all
272d81df689SKyle Evansother boot environments were destroyed.
273f0298be0SKyle Evans.It Fl H
274f0298be0SKyle EvansUsed for scripting.
275f0298be0SKyle EvansDo not print headers and separate fields by a single tab instead of
276d81df689SKyle Evansarbitrary white space.
277f0298be0SKyle Evans.It Fl s
278f0298be0SKyle EvansDisplay all snapshots as well.
279f0298be0SKyle Evans.It Fl c Ar property
280f0298be0SKyle EvansSort boot environments by given property name.
281f0298be0SKyle EvansThe following properties are supported:
282f0298be0SKyle Evans.Pp
283f0298be0SKyle Evans.Bl -tag -width 4n -offset indent -compact
284f0298be0SKyle Evans.It name (default output)
285f0298be0SKyle Evans.It creation
286f0298be0SKyle Evans.It origin
287f0298be0SKyle Evans.It used
288f0298be0SKyle Evans.It usedds
289f0298be0SKyle Evans.It usedsnap
290f0298be0SKyle Evans.It usedrefreserv
291f0298be0SKyle Evans.El
292f0298be0SKyle Evans.It Fl C Ar property
293f0298be0SKyle EvansSame as the
294f0298be0SKyle Evans.Fl c
295f0298be0SKyle Evansoption, but displays in descending order.
296f0298be0SKyle Evans.El
297f0298be0SKyle Evans.Pp
298f0298be0SKyle EvansThe
299f0298be0SKyle Evans.Fl D
300f0298be0SKyle Evansoption is ignored when either the
3015952343eSKyle Evans.Fl s
302f0298be0SKyle Evansor
303f0298be0SKyle Evans.Fl a
304f0298be0SKyle Evansoption is used.
305d81df689SKyle Evans.It Cm mount Ar beName Op Ar mountpoint
3065952343eSKyle EvansTemporarily mount the boot environment.
3075952343eSKyle EvansMount at the specified
3085952343eSKyle Evans.Ar mountpoint
3095952343eSKyle Evansif provided.
310d81df689SKyle Evans.It Cm rename Ar origBeName newBeName
31177688bffSMateusz PiotrowskiRename the given
3125952343eSKyle Evans.Ar origBeName
3135952343eSKyle Evansto the given
314d81df689SKyle Evans.Ar newBeName .
3158369ba42SKyle EvansThe boot environment will not be unmounted in order for this rename to occur.
31677688bffSMateusz Piotrowski.It Cm ujail Bro Ar jailId | jailName Brc Ar beName
31777688bffSMateusz Piotrowski.It Cm unjail Bro Ar jailId | jailName Brc Ar beName
31877688bffSMateusz PiotrowskiDestroy the jail created from the given boot environment.
31977688bffSMateusz Piotrowski.It Xo
32077688bffSMateusz Piotrowski.Cm umount
32177688bffSMateusz Piotrowski.Op Fl f
32277688bffSMateusz Piotrowski.Ar beName
32377688bffSMateusz Piotrowski.Xc
324d81df689SKyle Evans.It Xo
325d81df689SKyle Evans.Cm unmount
3265952343eSKyle Evans.Op Fl f
327d81df689SKyle Evans.Ar beName
328d81df689SKyle Evans.Xc
3295952343eSKyle EvansUnmount the given boot environment, if it is mounted.
3305952343eSKyle EvansSpecifying
3315952343eSKyle Evans.Fl f
3325952343eSKyle Evanswill force the unmount if busy.
3335952343eSKyle Evans.El
33477688bffSMateusz Piotrowski.Pp
33577688bffSMateusz Piotrowski.Nm
33677688bffSMateusz Piotrowskiprints usage information if
33777688bffSMateusz Piotrowski.Fl h
33877688bffSMateusz Piotrowskior
33977688bffSMateusz Piotrowski.Fl \&?
34077688bffSMateusz Piotrowskiis specified.
3415952343eSKyle Evans.Sh EXAMPLES
3425952343eSKyle Evans.Bl -bullet
3435952343eSKyle Evans.It
3445952343eSKyle EvansTo fill in with jail upgrade example when behavior is firm.
34584e61219SKyle Evans.El
3465952343eSKyle Evans.Sh SEE ALSO
34777688bffSMateusz Piotrowski.Xr beinstall.sh 1 ,
348f5c8cb4cSMateusz Piotrowski.Xr libbe 3 ,
3495952343eSKyle Evans.Xr jail 8 ,
3505952343eSKyle Evans.Xr zfs 8 ,
3515952343eSKyle Evans.Xr zpool 8
3525952343eSKyle Evans.Sh HISTORY
3535952343eSKyle Evans.Nm
3545952343eSKyle Evansis based on
35577688bffSMateusz Piotrowski.Xr beadm 1
3565952343eSKyle Evansand was implemented as a project for the 2017 Summer of Code, along with
3575952343eSKyle Evans.Xr libbe 3 .
3585952343eSKyle Evans.Sh AUTHORS
359d81df689SKyle Evans.Nm
360d81df689SKyle Evanswas written by
361d81df689SKyle Evans.An Kyle Kneitinger (kneitinger) Aq Mt kyle@kneit.in .
3625952343eSKyle Evans.Pp
36377688bffSMateusz Piotrowski.Xr beadm 1
364d81df689SKyle Evanswas written and is maintained by
365d81df689SKyle Evans.An Slawomir Wojciech Wojtczak (vermaden) Aq Mt vermaden@interia.pl .
3665952343eSKyle Evans.Pp
36734761e84SKyle Evans.An Bryan Drewery (bdrewery) Aq Mt bryan@shatow.net
368d81df689SKyle Evanswrote the original
36977688bffSMateusz Piotrowski.Xr beadm 1
3705952343eSKyle Evansmanual page that this one is derived from.
371