xref: /freebsd/sbin/bectl/bectl.8 (revision cb67aaf20c2ddd5a044a030835845e2d15350aea)
15952343eSKyle Evans.\"
2b179da01SKyle Evans.\" SPDX-License-Identifier: BSD-2-Clause-FreeBSD
3b179da01SKyle Evans.\"
4b179da01SKyle Evans.\" Copyright (c) 2017 Kyle J. Kneitinger <kyle@kneit.in>
55952343eSKyle Evans.\"
65952343eSKyle Evans.\" Redistribution and use in source and binary forms, with or without
75952343eSKyle Evans.\" modification, are permitted provided that the following conditions
85952343eSKyle Evans.\" are met:
95952343eSKyle Evans.\" 1. Redistributions of source code must retain the above copyright
105952343eSKyle Evans.\"    notice, this list of conditions and the following disclaimer.
115952343eSKyle Evans.\" 2. Redistributions in binary form must reproduce the above copyright
125952343eSKyle Evans.\"    notice, this list of conditions and the following disclaimer in the
135952343eSKyle Evans.\"    documentation and/or other materials provided with the distribution.
145952343eSKyle Evans.\"
155952343eSKyle Evans.\"
165952343eSKyle Evans.\"     @(#)be.1
17b6e7c421SKyle Evans.\"
185952343eSKyle Evans.\" $FreeBSD$
195952343eSKyle Evans.\"
2027586155SAlan Somers.Dd April 18, 2020
21edbfe3bcSKyle Evans.Dt BECTL 8
2284e61219SKyle Evans.Os
235952343eSKyle Evans.Sh NAME
24edbfe3bcSKyle Evans.Nm bectl
2577688bffSMateusz Piotrowski.Nd Utility to manage boot environments on ZFS
265952343eSKyle Evans.Sh SYNOPSIS
275952343eSKyle Evans.Nm
28d81df689SKyle Evans.Cm activate
295952343eSKyle Evans.Op Fl t
30d81df689SKyle Evans.Ar beName
315952343eSKyle Evans.Nm
32490e13c1SKyle Evans.Cm check
33490e13c1SKyle Evans.Nm
34d81df689SKyle Evans.Cm create
355952343eSKyle Evans.Op Fl r
3677688bffSMateusz Piotrowski.Op Fl e Brq Ar nonActiveBe | Ar beName Ns Cm @ Ns Ar snapshot
3777688bffSMateusz Piotrowski.Ar newBeName
385952343eSKyle Evans.Nm
3955ece394SKyle Evans.Cm create
4055ece394SKyle Evans.Op Fl r
4155ece394SKyle Evans.Ar beName@snapshot
4255ece394SKyle Evans.Nm
43d81df689SKyle Evans.Cm destroy
4477b4126cSKyle Evans.Op Fl \&Fo
4577688bffSMateusz Piotrowski.Ar beName Ns Op Cm @ Ns Ar snapshot
465952343eSKyle Evans.Nm
47d81df689SKyle Evans.Cm export
48d81df689SKyle Evans.Ar sourceBe
4934761e84SKyle Evans.Nm
50d81df689SKyle Evans.Cm import
51d81df689SKyle Evans.Ar targetBe
5234761e84SKyle Evans.Nm
53d81df689SKyle Evans.Cm jail
5477688bffSMateusz Piotrowski.Op Fl bU
5577688bffSMateusz Piotrowski.Oo Bro Fl o Ar key Ns Cm = Ns Ar value | Fl u Ar key Brc Oc Ns ...
5677688bffSMateusz Piotrowski.Ar beName
57cd816834SKyle Evans.Op Ar utility Op Ar argument ...
585952343eSKyle Evans.Nm
59d81df689SKyle Evans.Cm list
6077688bffSMateusz Piotrowski.Op Fl aDHs
61f0298be0SKyle Evans.Op Fl c Ar property
62f0298be0SKyle Evans.Op Fl C Ar property
63f0298be0SKyle Evans.Oo Bro Fl c Ar property | Fl C Ar property Brc Oc
645952343eSKyle Evans.Nm
65d81df689SKyle Evans.Cm mount
66d81df689SKyle Evans.Ar beName
6777688bffSMateusz Piotrowski.Op Ar mountpoint
685952343eSKyle Evans.Nm
69d81df689SKyle Evans.Cm rename
70d81df689SKyle Evans.Ar origBeName
71d81df689SKyle Evans.Ar newBeName
725952343eSKyle Evans.Nm
73d81df689SKyle Evans.Brq Cm ujail | unjail
7477688bffSMateusz Piotrowski.Brq Ar jailId | jailName
7577688bffSMateusz Piotrowski.Ar beName
765952343eSKyle Evans.Nm
77d81df689SKyle Evans.Brq Cm umount | unmount
785952343eSKyle Evans.Op Fl f
79d81df689SKyle Evans.Ar beName
8077688bffSMateusz Piotrowski.Pp
8177688bffSMateusz Piotrowski.Nm
8277688bffSMateusz Piotrowski.Op Fl h\&?
835952343eSKyle Evans.Sh DESCRIPTION
845952343eSKyle EvansThe
855952343eSKyle Evans.Nm
86d81df689SKyle Evanscommand is used to setup and interact with ZFS boot environments, which are
87d81df689SKyle Evansbootable clones of datasets.
885952343eSKyle Evans.Pp
8977688bffSMateusz PiotrowskiBoot environments
9077688bffSMateusz Piotrowskiallow the system to be upgraded, while preserving the old system environment in
91d81df689SKyle Evansa separate ZFS dataset.
9277688bffSMateusz Piotrowski.Pp
935952343eSKyle EvansThe following commands are supported by
945952343eSKyle Evans.Nm :
955952343eSKyle Evans.Bl -tag -width activate
96d81df689SKyle Evans.It Xo
97d81df689SKyle Evans.Cm activate
985952343eSKyle Evans.Op Fl t
99d81df689SKyle Evans.Ar beName
100d81df689SKyle Evans.Xc
1015952343eSKyle EvansActivate the given
1025952343eSKyle Evans.Ar beName
10384e61219SKyle Evansas the default boot filesystem.
10484e61219SKyle EvansIf the
1055952343eSKyle Evans.Op Fl t
1065952343eSKyle Evansflag is given, this takes effect only for the next boot.
107d81df689SKyle Evans.It Xo
108490e13c1SKyle Evans.Cm check
109490e13c1SKyle Evans.Xc
110490e13c1SKyle EvansPerforms a silent sanity check on the current system.
111490e13c1SKyle EvansIf boot environments are supported and used,
112490e13c1SKyle Evans.Nm
113490e13c1SKyle Evanswill exit with a status code of 0.
114490e13c1SKyle EvansAny other status code is not currently defined and may, in the future, grow
115490e13c1SKyle Evansspecial meaning for different degrees of sanity check failures.
116490e13c1SKyle Evans.It Xo
117d81df689SKyle Evans.Cm create
1185952343eSKyle Evans.Op Fl r
11977688bffSMateusz Piotrowski.Op Fl e Brq Ar nonActiveBe | Ar beName Ns Cm @ Ns Ar snapshot
12077688bffSMateusz Piotrowski.Ar newBeName
121d81df689SKyle Evans.Xc
12277688bffSMateusz PiotrowskiCreate a new boot environment named
12377688bffSMateusz Piotrowski.Ar newBeName .
12477688bffSMateusz Piotrowski.Pp
12577688bffSMateusz PiotrowskiIf the
12677688bffSMateusz Piotrowski.Fl r
12777688bffSMateusz Piotrowskiflag is given, a recursive boot environment will be made.
12877688bffSMateusz Piotrowski.Pp
1295952343eSKyle EvansIf the
130d81df689SKyle Evans.Fl e
13177688bffSMateusz Piotrowskiflag is specified, the new environment will be cloned from the given
13277688bffSMateusz Piotrowski.Ar nonActiveBe
13377688bffSMateusz Piotrowskior
13477688bffSMateusz Piotrowski.Ar beName Ns Cm @ Ns Ar snapshot .
13577688bffSMateusz PiotrowskiOtherwise, the new environment will be created from the currently booted environment.
13677688bffSMateusz Piotrowski.Pp
13777688bffSMateusz PiotrowskiIf
13877688bffSMateusz Piotrowski.Nm
13977688bffSMateusz Piotrowskiis creating from another boot environment, a snapshot of that boot environment will be created to clone from.
140d81df689SKyle Evans.It Xo
14155ece394SKyle Evans.Cm create
14255ece394SKyle Evans.Op Fl r
14355ece394SKyle Evans.Ar beName@snapshot
14455ece394SKyle Evans.Xc
14555ece394SKyle EvansCreate a snapshot of the boot environment named
14655ece394SKyle Evans.Ar beName .
14755ece394SKyle Evans.Pp
14855ece394SKyle EvansIf the
14955ece394SKyle Evans.Fl r
15055ece394SKyle Evansflag is given, a recursive snapshot of the boot environment will be created.
15155ece394SKyle EvansA snapshot is created for each descendant dataset of the boot environment.
15255ece394SKyle Evans.Pp
15355ece394SKyle EvansNo new boot environment is created with this command.
15455ece394SKyle Evans.It Xo
155d81df689SKyle Evans.Cm destroy
15677b4126cSKyle Evans.Op Fl \&Fo
15777688bffSMateusz Piotrowski.Ar beName Ns Op Cm @ Ns Ar snapshot
158d81df689SKyle Evans.Xc
15977688bffSMateusz PiotrowskiDestroy the given
1605952343eSKyle Evans.Ar beName
1615952343eSKyle Evansboot environment or
16277688bffSMateusz Piotrowski.Ar beName Ns Cm @ Ns Ar snapshot
1638369ba42SKyle Evanssnapshot without confirmation, unlike in
16477688bffSMateusz Piotrowski.Xr beadm 1 .
1655952343eSKyle EvansSpecifying
1665952343eSKyle Evans.Fl F
1675952343eSKyle Evanswill automatically unmount without confirmation.
16877b4126cSKyle Evans.Pp
16977b4126cSKyle EvansBy default,
17077b4126cSKyle Evans.Nm
17177b4126cSKyle Evanswill warn that it is not destroying the origin of
17277b4126cSKyle Evans.Ar beName .
17377b4126cSKyle EvansThe
17477b4126cSKyle Evans.Fl o
17577b4126cSKyle Evansflag may be specified to destroy the origin as well.
176d81df689SKyle Evans.It Cm export Ar sourceBe
17734761e84SKyle EvansExport
17834761e84SKyle Evans.Ar sourceBe
17934761e84SKyle Evansto
18077688bffSMateusz Piotrowski.Xr stdout 4 .
18177688bffSMateusz Piotrowski.Xr stdout 4
18234761e84SKyle Evansmust be piped or redirected to a file.
183d81df689SKyle Evans.It Cm import Ar targetBe
18434761e84SKyle EvansImport
18534761e84SKyle Evans.Ar targetBe
18634761e84SKyle Evansfrom
18777688bffSMateusz Piotrowski.Xr stdin 4 .
188d81df689SKyle Evans.It Xo
189d81df689SKyle Evans.Cm jail
19077688bffSMateusz Piotrowski.Op Fl bU
19177688bffSMateusz Piotrowski.Oo Bro Fl o Ar key Ns Cm = Ns Ar value | Fl u Ar key Brc Oc Ns ...
19277688bffSMateusz Piotrowski.Ar beName
193cd816834SKyle Evans.Op Ar utility Op Ar argument ...
194d81df689SKyle Evans.Xc
19577688bffSMateusz PiotrowskiCreate a jail of the given boot environment.
196d694059fSKyle EvansMultiple
197d694059fSKyle Evans.Fl o
1982a0b8dc2SKyle Evansand
1992a0b8dc2SKyle Evans.Fl u
200d694059fSKyle Evansarguments may be specified.
2012a0b8dc2SKyle Evans.Fl o
2022a0b8dc2SKyle Evanswill set a jail parameter, and
2032a0b8dc2SKyle Evans.Fl u
2042a0b8dc2SKyle Evanswill unset a jail parameter.
205cd816834SKyle Evans.Pp
206cd816834SKyle EvansBy default, jails are created in interactive mode and
207cd816834SKyle Evans.Pa /bin/sh
208cd816834SKyle Evansis
209b509cad4SKyle Evansexecuted within the jail.
210cd816834SKyle EvansIf
211cd816834SKyle Evans.Ar utility
212cd816834SKyle Evansis specified, it will be executed instead of
213cd816834SKyle Evans.Pa /bin/sh .
214db9db0e7SKyle EvansThe jail will be destroyed and the boot environment unmounted when the command
215db9db0e7SKyle Evansfinishes executing, unless the
216db9db0e7SKyle Evans.Fl U
217db9db0e7SKyle Evansargument is specified.
218cd816834SKyle Evans.Pp
219b509cad4SKyle EvansThe
220b509cad4SKyle Evans.Fl b
221b509cad4SKyle Evansargument enables batch mode, thereby disabling interactive mode.
222db9db0e7SKyle EvansThe
223db9db0e7SKyle Evans.Fl U
224db9db0e7SKyle Evansargument will be ignored in batch mode.
2252a0b8dc2SKyle Evans.Pp
2262a0b8dc2SKyle EvansThe
2272a0b8dc2SKyle Evans.Va name ,
2282a0b8dc2SKyle Evans.Va host.hostname ,
2292a0b8dc2SKyle Evansand
2302a0b8dc2SKyle Evans.Va path
2317ce09314SKyle Evansmust be set, the default values are specified below.
2322a0b8dc2SKyle Evans.Pp
2332a0b8dc2SKyle EvansAll
23477688bffSMateusz Piotrowski.Ar key Ns Cm = Ns Ar value
235d694059fSKyle Evanspairs are interpreted as jail parameters as described in
236d694059fSKyle Evans.Xr jail 8 .
237d694059fSKyle EvansThe following default parameters are provided:
238d81df689SKyle Evans.Bl -column "allow.mount.devfs" ""
239d81df689SKyle Evans.It Va allow.mount Ta Cm true
240d81df689SKyle Evans.It Va allow.mount.devfs Ta Cm true
241d81df689SKyle Evans.It Va enforce_statfs Ta Cm 1
24277688bffSMateusz Piotrowski.It Va name Ta Set to jail ID.
243d81df689SKyle Evans.It Va host.hostname Ta Va bootenv
24477688bffSMateusz Piotrowski.It Va path Ta Set to a path in Pa /tmp
24577688bffSMateusz Piotrowskigenerated by
24684e61219SKyle Evans.Xr libbe 3 .
247d694059fSKyle Evans.El
2485952343eSKyle Evans.Pp
2492a0b8dc2SKyle EvansAll default parameters may be overwritten.
250f0298be0SKyle Evans.It Xo
251f0298be0SKyle Evans.Cm list
252f0298be0SKyle Evans.Op Fl DHas
253f0298be0SKyle Evans.Oo Bro Fl c Ar property | Fl C Ar property Brc Oc
254f0298be0SKyle Evans.Xc
255f0298be0SKyle Evans.Pp
25677688bffSMateusz PiotrowskiDisplay all boot environments.
25777688bffSMateusz PiotrowskiThe
25877688bffSMateusz Piotrowski.Em Active
25977688bffSMateusz Piotrowskifield indicates whether the boot environment is active now
26077688bffSMateusz Piotrowski.Pq Em \&N ;
26177688bffSMateusz Piotrowskiactive on reboot
26277688bffSMateusz Piotrowski.Pq Em \&R ;
26377688bffSMateusz Piotrowskior both
26477688bffSMateusz Piotrowski.Pq Em \&NR .
2655952343eSKyle Evans.Pp
266f0298be0SKyle Evans.Bl -tag -width indent
267f0298be0SKyle Evans.It Fl a
268f0298be0SKyle EvansDisplay all datasets.
269f0298be0SKyle Evans.It Fl D
270f0298be0SKyle EvansDisplay the full space usage for each boot environment, assuming all
271d81df689SKyle Evansother boot environments were destroyed.
272f0298be0SKyle Evans.It Fl H
273f0298be0SKyle EvansUsed for scripting.
274f0298be0SKyle EvansDo not print headers and separate fields by a single tab instead of
275d81df689SKyle Evansarbitrary white space.
276f0298be0SKyle Evans.It Fl s
277f0298be0SKyle EvansDisplay all snapshots as well.
278f0298be0SKyle Evans.It Fl c Ar property
279f0298be0SKyle EvansSort boot environments by given property name.
280f0298be0SKyle EvansThe following properties are supported:
281f0298be0SKyle Evans.Pp
282f0298be0SKyle Evans.Bl -tag -width 4n -offset indent -compact
283f0298be0SKyle Evans.It name (default output)
284f0298be0SKyle Evans.It creation
285f0298be0SKyle Evans.It origin
286f0298be0SKyle Evans.It used
287f0298be0SKyle Evans.It usedds
288f0298be0SKyle Evans.It usedsnap
289f0298be0SKyle Evans.It usedrefreserv
290f0298be0SKyle Evans.El
291f0298be0SKyle Evans.It Fl C Ar property
292f0298be0SKyle EvansSame as the
293f0298be0SKyle Evans.Fl c
294f0298be0SKyle Evansoption, but displays in descending order.
295f0298be0SKyle Evans.El
296f0298be0SKyle Evans.Pp
297f0298be0SKyle EvansThe
298f0298be0SKyle Evans.Fl D
299f0298be0SKyle Evansoption is ignored when either the
3005952343eSKyle Evans.Fl s
301f0298be0SKyle Evansor
302f0298be0SKyle Evans.Fl a
303f0298be0SKyle Evansoption is used.
304d81df689SKyle Evans.It Cm mount Ar beName Op Ar mountpoint
3055952343eSKyle EvansTemporarily mount the boot environment.
3065952343eSKyle EvansMount at the specified
3075952343eSKyle Evans.Ar mountpoint
3085952343eSKyle Evansif provided.
309d81df689SKyle Evans.It Cm rename Ar origBeName newBeName
31077688bffSMateusz PiotrowskiRename the given
3115952343eSKyle Evans.Ar origBeName
3125952343eSKyle Evansto the given
313d81df689SKyle Evans.Ar newBeName .
3148369ba42SKyle EvansThe boot environment will not be unmounted in order for this rename to occur.
31577688bffSMateusz Piotrowski.It Cm ujail Bro Ar jailId | jailName Brc Ar beName
31677688bffSMateusz Piotrowski.It Cm unjail Bro Ar jailId | jailName Brc Ar beName
31777688bffSMateusz PiotrowskiDestroy the jail created from the given boot environment.
31877688bffSMateusz Piotrowski.It Xo
31977688bffSMateusz Piotrowski.Cm umount
32077688bffSMateusz Piotrowski.Op Fl f
32177688bffSMateusz Piotrowski.Ar beName
32277688bffSMateusz Piotrowski.Xc
323d81df689SKyle Evans.It Xo
324d81df689SKyle Evans.Cm unmount
3255952343eSKyle Evans.Op Fl f
326d81df689SKyle Evans.Ar beName
327d81df689SKyle Evans.Xc
3285952343eSKyle EvansUnmount the given boot environment, if it is mounted.
3295952343eSKyle EvansSpecifying
3305952343eSKyle Evans.Fl f
3315952343eSKyle Evanswill force the unmount if busy.
3325952343eSKyle Evans.El
33377688bffSMateusz Piotrowski.Pp
33477688bffSMateusz Piotrowski.Nm
33577688bffSMateusz Piotrowskiprints usage information if
33677688bffSMateusz Piotrowski.Fl h
33777688bffSMateusz Piotrowskior
33877688bffSMateusz Piotrowski.Fl \&?
33977688bffSMateusz Piotrowskiis specified.
3405952343eSKyle Evans.Sh EXAMPLES
3415952343eSKyle Evans.Bl -bullet
3425952343eSKyle Evans.It
3435952343eSKyle EvansTo fill in with jail upgrade example when behavior is firm.
34484e61219SKyle Evans.El
3455952343eSKyle Evans.Sh SEE ALSO
346f5c8cb4cSMateusz Piotrowski.Xr libbe 3 ,
347*cb67aaf2SAlan Somers.Xr beinstall.sh 8 ,
3485952343eSKyle Evans.Xr jail 8 ,
3495952343eSKyle Evans.Xr zfs 8 ,
3505952343eSKyle Evans.Xr zpool 8
3515952343eSKyle Evans.Sh HISTORY
3525952343eSKyle Evans.Nm
3535952343eSKyle Evansis based on
35477688bffSMateusz Piotrowski.Xr beadm 1
3555952343eSKyle Evansand was implemented as a project for the 2017 Summer of Code, along with
3565952343eSKyle Evans.Xr libbe 3 .
3575952343eSKyle Evans.Sh AUTHORS
358d81df689SKyle Evans.Nm
359d81df689SKyle Evanswas written by
360d81df689SKyle Evans.An Kyle Kneitinger (kneitinger) Aq Mt kyle@kneit.in .
3615952343eSKyle Evans.Pp
36277688bffSMateusz Piotrowski.Xr beadm 1
363d81df689SKyle Evanswas written and is maintained by
364d81df689SKyle Evans.An Slawomir Wojciech Wojtczak (vermaden) Aq Mt vermaden@interia.pl .
3655952343eSKyle Evans.Pp
36634761e84SKyle Evans.An Bryan Drewery (bdrewery) Aq Mt bryan@shatow.net
367d81df689SKyle Evanswrote the original
36877688bffSMateusz Piotrowski.Xr beadm 1
3695952343eSKyle Evansmanual page that this one is derived from.
370