xref: /freebsd/sbin/bectl/bectl.8 (revision f0298be018ffcc871e40d6f6df22d25a69152d48)
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*f0298be0SKyle Evans.Dd September 4, 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
3855ece394SKyle Evans.Cm create
3955ece394SKyle Evans.Op Fl r
4055ece394SKyle Evans.Ar beName@snapshot
4155ece394SKyle 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
60*f0298be0SKyle Evans.Op Fl c Ar property
61*f0298be0SKyle Evans.Op Fl C Ar property
62*f0298be0SKyle Evans.Oo Bro Fl c Ar property | Fl C Ar property Brc Oc
635952343eSKyle Evans.Nm
64d81df689SKyle Evans.Cm mount
65d81df689SKyle Evans.Ar beName
6677688bffSMateusz Piotrowski.Op Ar mountpoint
675952343eSKyle Evans.Nm
68d81df689SKyle Evans.Cm rename
69d81df689SKyle Evans.Ar origBeName
70d81df689SKyle Evans.Ar newBeName
715952343eSKyle Evans.Nm
72d81df689SKyle Evans.Brq Cm ujail | unjail
7377688bffSMateusz Piotrowski.Brq Ar jailId | jailName
7477688bffSMateusz Piotrowski.Ar beName
755952343eSKyle Evans.Nm
76d81df689SKyle Evans.Brq Cm umount | unmount
775952343eSKyle Evans.Op Fl f
78d81df689SKyle Evans.Ar beName
7977688bffSMateusz Piotrowski.Pp
8077688bffSMateusz Piotrowski.Nm
8177688bffSMateusz Piotrowski.Op Fl h\&?
825952343eSKyle Evans.Sh DESCRIPTION
835952343eSKyle EvansThe
845952343eSKyle Evans.Nm
85d81df689SKyle Evanscommand is used to setup and interact with ZFS boot environments, which are
86d81df689SKyle Evansbootable clones of datasets.
875952343eSKyle Evans.Pp
8877688bffSMateusz PiotrowskiBoot environments
8977688bffSMateusz Piotrowskiallow the system to be upgraded, while preserving the old system environment in
90d81df689SKyle Evansa separate ZFS dataset.
9177688bffSMateusz Piotrowski.Pp
925952343eSKyle EvansThe following commands are supported by
935952343eSKyle Evans.Nm :
945952343eSKyle Evans.Bl -tag -width activate
95d81df689SKyle Evans.It Xo
96d81df689SKyle Evans.Cm activate
975952343eSKyle Evans.Op Fl t
98d81df689SKyle Evans.Ar beName
99d81df689SKyle Evans.Xc
1005952343eSKyle EvansActivate the given
1015952343eSKyle Evans.Ar beName
10284e61219SKyle Evansas the default boot filesystem.
10384e61219SKyle EvansIf the
1045952343eSKyle Evans.Op Fl t
1055952343eSKyle Evansflag is given, this takes effect only for the next boot.
106d81df689SKyle Evans.It Xo
107d81df689SKyle Evans.Cm create
1085952343eSKyle Evans.Op Fl r
10977688bffSMateusz Piotrowski.Op Fl e Brq Ar nonActiveBe | Ar beName Ns Cm @ Ns Ar snapshot
11077688bffSMateusz Piotrowski.Ar newBeName
111d81df689SKyle Evans.Xc
11277688bffSMateusz PiotrowskiCreate a new boot environment named
11377688bffSMateusz Piotrowski.Ar newBeName .
11477688bffSMateusz Piotrowski.Pp
11577688bffSMateusz PiotrowskiIf the
11677688bffSMateusz Piotrowski.Fl r
11777688bffSMateusz Piotrowskiflag is given, a recursive boot environment will be made.
11877688bffSMateusz Piotrowski.Pp
1195952343eSKyle EvansIf the
120d81df689SKyle Evans.Fl e
12177688bffSMateusz Piotrowskiflag is specified, the new environment will be cloned from the given
12277688bffSMateusz Piotrowski.Ar nonActiveBe
12377688bffSMateusz Piotrowskior
12477688bffSMateusz Piotrowski.Ar beName Ns Cm @ Ns Ar snapshot .
12577688bffSMateusz PiotrowskiOtherwise, the new environment will be created from the currently booted environment.
12677688bffSMateusz Piotrowski.Pp
12777688bffSMateusz PiotrowskiIf
12877688bffSMateusz Piotrowski.Nm
12977688bffSMateusz Piotrowskiis creating from another boot environment, a snapshot of that boot environment will be created to clone from.
130d81df689SKyle Evans.It Xo
13155ece394SKyle Evans.Cm create
13255ece394SKyle Evans.Op Fl r
13355ece394SKyle Evans.Ar beName@snapshot
13455ece394SKyle Evans.Xc
13555ece394SKyle EvansCreate a snapshot of the boot environment named
13655ece394SKyle Evans.Ar beName .
13755ece394SKyle Evans.Pp
13855ece394SKyle EvansIf the
13955ece394SKyle Evans.Fl r
14055ece394SKyle Evansflag is given, a recursive snapshot of the boot environment will be created.
14155ece394SKyle EvansA snapshot is created for each descendant dataset of the boot environment.
14255ece394SKyle Evans.Pp
14355ece394SKyle EvansNo new boot environment is created with this command.
14455ece394SKyle Evans.It Xo
145d81df689SKyle Evans.Cm destroy
14677b4126cSKyle Evans.Op Fl \&Fo
14777688bffSMateusz Piotrowski.Ar beName Ns Op Cm @ Ns Ar snapshot
148d81df689SKyle Evans.Xc
14977688bffSMateusz PiotrowskiDestroy the given
1505952343eSKyle Evans.Ar beName
1515952343eSKyle Evansboot environment or
15277688bffSMateusz Piotrowski.Ar beName Ns Cm @ Ns Ar snapshot
1538369ba42SKyle Evanssnapshot without confirmation, unlike in
15477688bffSMateusz Piotrowski.Xr beadm 1 .
1555952343eSKyle EvansSpecifying
1565952343eSKyle Evans.Fl F
1575952343eSKyle Evanswill automatically unmount without confirmation.
15877b4126cSKyle Evans.Pp
15977b4126cSKyle EvansBy default,
16077b4126cSKyle Evans.Nm
16177b4126cSKyle Evanswill warn that it is not destroying the origin of
16277b4126cSKyle Evans.Ar beName .
16377b4126cSKyle EvansThe
16477b4126cSKyle Evans.Fl o
16577b4126cSKyle Evansflag may be specified to destroy the origin as well.
166d81df689SKyle Evans.It Cm export Ar sourceBe
16734761e84SKyle EvansExport
16834761e84SKyle Evans.Ar sourceBe
16934761e84SKyle Evansto
17077688bffSMateusz Piotrowski.Xr stdout 4 .
17177688bffSMateusz Piotrowski.Xr stdout 4
17234761e84SKyle Evansmust be piped or redirected to a file.
173d81df689SKyle Evans.It Cm import Ar targetBe
17434761e84SKyle EvansImport
17534761e84SKyle Evans.Ar targetBe
17634761e84SKyle Evansfrom
17777688bffSMateusz Piotrowski.Xr stdin 4 .
178d81df689SKyle Evans.It Xo
179d81df689SKyle Evans.Cm jail
18077688bffSMateusz Piotrowski.Op Fl bU
18177688bffSMateusz Piotrowski.Oo Bro Fl o Ar key Ns Cm = Ns Ar value | Fl u Ar key Brc Oc Ns ...
18277688bffSMateusz Piotrowski.Ar beName
183cd816834SKyle Evans.Op Ar utility Op Ar argument ...
184d81df689SKyle Evans.Xc
18577688bffSMateusz PiotrowskiCreate a jail of the given boot environment.
186d694059fSKyle EvansMultiple
187d694059fSKyle Evans.Fl o
1882a0b8dc2SKyle Evansand
1892a0b8dc2SKyle Evans.Fl u
190d694059fSKyle Evansarguments may be specified.
1912a0b8dc2SKyle Evans.Fl o
1922a0b8dc2SKyle Evanswill set a jail parameter, and
1932a0b8dc2SKyle Evans.Fl u
1942a0b8dc2SKyle Evanswill unset a jail parameter.
195cd816834SKyle Evans.Pp
196cd816834SKyle EvansBy default, jails are created in interactive mode and
197cd816834SKyle Evans.Pa /bin/sh
198cd816834SKyle Evansis
199b509cad4SKyle Evansexecuted within the jail.
200cd816834SKyle EvansIf
201cd816834SKyle Evans.Ar utility
202cd816834SKyle Evansis specified, it will be executed instead of
203cd816834SKyle Evans.Pa /bin/sh .
204db9db0e7SKyle EvansThe jail will be destroyed and the boot environment unmounted when the command
205db9db0e7SKyle Evansfinishes executing, unless the
206db9db0e7SKyle Evans.Fl U
207db9db0e7SKyle Evansargument is specified.
208cd816834SKyle Evans.Pp
209b509cad4SKyle EvansThe
210b509cad4SKyle Evans.Fl b
211b509cad4SKyle Evansargument enables batch mode, thereby disabling interactive mode.
212db9db0e7SKyle EvansThe
213db9db0e7SKyle Evans.Fl U
214db9db0e7SKyle Evansargument will be ignored in batch mode.
2152a0b8dc2SKyle Evans.Pp
2162a0b8dc2SKyle EvansThe
2172a0b8dc2SKyle Evans.Va name ,
2182a0b8dc2SKyle Evans.Va host.hostname ,
2192a0b8dc2SKyle Evansand
2202a0b8dc2SKyle Evans.Va path
2217ce09314SKyle Evansmust be set, the default values are specified below.
2222a0b8dc2SKyle Evans.Pp
2232a0b8dc2SKyle EvansAll
22477688bffSMateusz Piotrowski.Ar key Ns Cm = Ns Ar value
225d694059fSKyle Evanspairs are interpreted as jail parameters as described in
226d694059fSKyle Evans.Xr jail 8 .
227d694059fSKyle EvansThe following default parameters are provided:
228d81df689SKyle Evans.Bl -column "allow.mount.devfs" ""
229d81df689SKyle Evans.It Va allow.mount Ta Cm true
230d81df689SKyle Evans.It Va allow.mount.devfs Ta Cm true
231d81df689SKyle Evans.It Va enforce_statfs Ta Cm 1
23277688bffSMateusz Piotrowski.It Va name Ta Set to jail ID.
233d81df689SKyle Evans.It Va host.hostname Ta Va bootenv
23477688bffSMateusz Piotrowski.It Va path Ta Set to a path in Pa /tmp
23577688bffSMateusz Piotrowskigenerated by
23684e61219SKyle Evans.Xr libbe 3 .
237d694059fSKyle Evans.El
2385952343eSKyle Evans.Pp
2392a0b8dc2SKyle EvansAll default parameters may be overwritten.
240*f0298be0SKyle Evans.It Xo
241*f0298be0SKyle Evans.Cm list
242*f0298be0SKyle Evans.Op Fl DHas
243*f0298be0SKyle Evans.Oo Bro Fl c Ar property | Fl C Ar property Brc Oc
244*f0298be0SKyle Evans.Xc
245*f0298be0SKyle Evans.Pp
24677688bffSMateusz PiotrowskiDisplay all boot environments.
24777688bffSMateusz PiotrowskiThe
24877688bffSMateusz Piotrowski.Em Active
24977688bffSMateusz Piotrowskifield indicates whether the boot environment is active now
25077688bffSMateusz Piotrowski.Pq Em \&N ;
25177688bffSMateusz Piotrowskiactive on reboot
25277688bffSMateusz Piotrowski.Pq Em \&R ;
25377688bffSMateusz Piotrowskior both
25477688bffSMateusz Piotrowski.Pq Em \&NR .
2555952343eSKyle Evans.Pp
256*f0298be0SKyle Evans.Bl -tag -width indent
257*f0298be0SKyle Evans.It Fl a
258*f0298be0SKyle EvansDisplay all datasets.
259*f0298be0SKyle Evans.It Fl D
260*f0298be0SKyle EvansDisplay the full space usage for each boot environment, assuming all
261d81df689SKyle Evansother boot environments were destroyed.
262*f0298be0SKyle Evans.It Fl H
263*f0298be0SKyle EvansUsed for scripting.
264*f0298be0SKyle EvansDo not print headers and separate fields by a single tab instead of
265d81df689SKyle Evansarbitrary white space.
266*f0298be0SKyle Evans.It Fl s
267*f0298be0SKyle EvansDisplay all snapshots as well.
268*f0298be0SKyle Evans.It Fl c Ar property
269*f0298be0SKyle EvansSort boot environments by given property name.
270*f0298be0SKyle EvansThe following properties are supported:
271*f0298be0SKyle Evans.Pp
272*f0298be0SKyle Evans.Bl -tag -width 4n -offset indent -compact
273*f0298be0SKyle Evans.It name (default output)
274*f0298be0SKyle Evans.It creation
275*f0298be0SKyle Evans.It origin
276*f0298be0SKyle Evans.It used
277*f0298be0SKyle Evans.It usedds
278*f0298be0SKyle Evans.It usedsnap
279*f0298be0SKyle Evans.It usedrefreserv
280*f0298be0SKyle Evans.El
281*f0298be0SKyle Evans.It Fl C Ar property
282*f0298be0SKyle EvansSame as the
283*f0298be0SKyle Evans.Fl c
284*f0298be0SKyle Evansoption, but displays in descending order.
285*f0298be0SKyle Evans.El
286*f0298be0SKyle Evans.Pp
287*f0298be0SKyle EvansThe
288*f0298be0SKyle Evans.Fl D
289*f0298be0SKyle Evansoption is ignored when either the
2905952343eSKyle Evans.Fl s
291*f0298be0SKyle Evansor
292*f0298be0SKyle Evans.Fl a
293*f0298be0SKyle Evansoption is used.
294d81df689SKyle Evans.It Cm mount Ar beName Op Ar mountpoint
2955952343eSKyle EvansTemporarily mount the boot environment.
2965952343eSKyle EvansMount at the specified
2975952343eSKyle Evans.Ar mountpoint
2985952343eSKyle Evansif provided.
299d81df689SKyle Evans.It Cm rename Ar origBeName newBeName
30077688bffSMateusz PiotrowskiRename the given
3015952343eSKyle Evans.Ar origBeName
3025952343eSKyle Evansto the given
303d81df689SKyle Evans.Ar newBeName .
3048369ba42SKyle EvansThe boot environment will not be unmounted in order for this rename to occur.
30577688bffSMateusz Piotrowski.It Cm ujail Bro Ar jailId | jailName Brc Ar beName
30677688bffSMateusz Piotrowski.It Cm unjail Bro Ar jailId | jailName Brc Ar beName
30777688bffSMateusz PiotrowskiDestroy the jail created from the given boot environment.
30877688bffSMateusz Piotrowski.It Xo
30977688bffSMateusz Piotrowski.Cm umount
31077688bffSMateusz Piotrowski.Op Fl f
31177688bffSMateusz Piotrowski.Ar beName
31277688bffSMateusz Piotrowski.Xc
313d81df689SKyle Evans.It Xo
314d81df689SKyle Evans.Cm unmount
3155952343eSKyle Evans.Op Fl f
316d81df689SKyle Evans.Ar beName
317d81df689SKyle Evans.Xc
3185952343eSKyle EvansUnmount the given boot environment, if it is mounted.
3195952343eSKyle EvansSpecifying
3205952343eSKyle Evans.Fl f
3215952343eSKyle Evanswill force the unmount if busy.
3225952343eSKyle Evans.El
32377688bffSMateusz Piotrowski.Pp
32477688bffSMateusz Piotrowski.Nm
32577688bffSMateusz Piotrowskiprints usage information if
32677688bffSMateusz Piotrowski.Fl h
32777688bffSMateusz Piotrowskior
32877688bffSMateusz Piotrowski.Fl \&?
32977688bffSMateusz Piotrowskiis specified.
3305952343eSKyle Evans.Sh EXAMPLES
3315952343eSKyle Evans.Bl -bullet
3325952343eSKyle Evans.It
3335952343eSKyle EvansTo fill in with jail upgrade example when behavior is firm.
33484e61219SKyle Evans.El
3355952343eSKyle Evans.Sh SEE ALSO
33677688bffSMateusz Piotrowski.Xr beinstall.sh 1 ,
337f5c8cb4cSMateusz Piotrowski.Xr libbe 3 ,
3385952343eSKyle Evans.Xr jail 8 ,
3395952343eSKyle Evans.Xr zfs 8 ,
3405952343eSKyle Evans.Xr zpool 8
3415952343eSKyle Evans.Sh HISTORY
3425952343eSKyle Evans.Nm
3435952343eSKyle Evansis based on
34477688bffSMateusz Piotrowski.Xr beadm 1
3455952343eSKyle Evansand was implemented as a project for the 2017 Summer of Code, along with
3465952343eSKyle Evans.Xr libbe 3 .
3475952343eSKyle Evans.Sh AUTHORS
348d81df689SKyle Evans.Nm
349d81df689SKyle Evanswas written by
350d81df689SKyle Evans.An Kyle Kneitinger (kneitinger) Aq Mt kyle@kneit.in .
3515952343eSKyle Evans.Pp
35277688bffSMateusz Piotrowski.Xr beadm 1
353d81df689SKyle Evanswas written and is maintained by
354d81df689SKyle Evans.An Slawomir Wojciech Wojtczak (vermaden) Aq Mt vermaden@interia.pl .
3555952343eSKyle Evans.Pp
35634761e84SKyle Evans.An Bryan Drewery (bdrewery) Aq Mt bryan@shatow.net
357d81df689SKyle Evanswrote the original
35877688bffSMateusz Piotrowski.Xr beadm 1
3595952343eSKyle Evansmanual page that this one is derived from.
360