xref: /freebsd/sbin/bectl/bectl.8 (revision 34761e84239317f6eaa679d21ffb299071d0a295)
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.\"
2184e61219SKyle Evans.Dd August 10, 2018
22edbfe3bcSKyle Evans.Dt BECTL 8
2384e61219SKyle Evans.Os
245952343eSKyle Evans.Sh NAME
25edbfe3bcSKyle Evans.Nm bectl
265952343eSKyle Evans.Nd Utility to manage Boot Environments on ZFS
275952343eSKyle Evans.Sh SYNOPSIS
285952343eSKyle Evans.Nm
295952343eSKyle Evansactivate
305952343eSKyle Evans.Op Fl t
315952343eSKyle Evans.Ao Ar beName Ac
325952343eSKyle Evans.Nm
335952343eSKyle Evanscreate
345952343eSKyle Evans.Op Fl r
355952343eSKyle Evans.Op Fl e Ar nonActiveBe | Fl e Ar beName@snapshot
365952343eSKyle Evans.Ao Ar beName Ac
375952343eSKyle Evans.Nm
385952343eSKyle Evanscreate
395952343eSKyle Evans.Op Fl r
405952343eSKyle Evans.Ao Ar beName@snapshot Ac
415952343eSKyle Evans.Nm
425952343eSKyle Evansdestroy
435952343eSKyle Evans.Op Fl F
445952343eSKyle Evans.Ao Ar beName | beName@snapshot Ac
455952343eSKyle Evans.Nm
46*34761e84SKyle Evansexport
47*34761e84SKyle Evans.Ao Ar sourceBe Ac
48*34761e84SKyle Evans.Nm
49*34761e84SKyle Evansimport
50*34761e84SKyle Evans.Ao Ar targetBe Ac
51*34761e84SKyle Evans.Nm
525952343eSKyle Evansjail
532a0b8dc2SKyle Evans.Oo Fl o Ar key Ns = Ns Ar value | Fl u Ar key Oc Ns ...
545952343eSKyle Evans.Ao Ar jailID | jailName Ac
555952343eSKyle Evans.Ao Ar bootenv Ac
565952343eSKyle Evans.Nm
575952343eSKyle Evanslist
585952343eSKyle Evans.Op Fl a
595952343eSKyle Evans.Op Fl D
605952343eSKyle Evans.Op Fl H
615952343eSKyle Evans.Op Fl s
625952343eSKyle Evans.Nm
635952343eSKyle Evansmount
645952343eSKyle Evans.Ao Ar beName Ac
655952343eSKyle Evans.Op mountpoint
665952343eSKyle Evans.Nm
675952343eSKyle Evansrename
685952343eSKyle Evans.Ao Ar origBeName Ac
695952343eSKyle Evans.Ao Ar newBeName Ac
705952343eSKyle Evans.Nm
715952343eSKyle Evans{ ujail | unjail }
725952343eSKyle Evans.Ao Ar jailID | jailName Ac
735952343eSKyle Evans.Ao Ar bootenv Ac
745952343eSKyle Evans.Nm
755952343eSKyle Evans{ umount | unmount }
765952343eSKyle Evans.Op Fl f
775952343eSKyle Evans.Ao Ar beName Ac
785952343eSKyle Evans.Sh DESCRIPTION
795952343eSKyle EvansThe
805952343eSKyle Evans.Nm
815952343eSKyle Evanscommand is used to setup and interact with ZFS boot environments, which are bootable clones of datasets.
825952343eSKyle Evans.Pp
835952343eSKyle Evans.Em Boot Environments
845952343eSKyle Evansallows the system to be upgraded, while preserving the old system environment in a separate ZFS dataset.
855952343eSKyle Evans.Sh COMMANDS
865952343eSKyle EvansThe following commands are supported by
875952343eSKyle Evans.Nm :
885952343eSKyle Evans.Bl -tag -width activate
895952343eSKyle Evans.It Ic activate
905952343eSKyle Evans.Op Fl t
915952343eSKyle Evans.Ar <beName>
925952343eSKyle Evans.Pp
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.
995952343eSKyle Evans.It Ic create
1005952343eSKyle Evans.Op Fl r
1015952343eSKyle Evans.Op Fl e Ar nonActiveBe | Fl e Ar beName@snapshot
1025952343eSKyle Evans.Ao Ar beName Ac
1035952343eSKyle Evans.Pp
1045952343eSKyle EvansCreates a new boot environment named
1055952343eSKyle Evans.Ar beName .
1065952343eSKyle EvansIf the -e param is specified, the new environment will be cloned from the given
1075952343eSKyle Evans.Ar nonActiveBe | Ar beName@snapshot .
1085952343eSKyle EvansIf the
1095952343eSKyle Evans.Op Fl r
1105952343eSKyle Evansflag is given, a recursive boot environment will be made.
1115952343eSKyle Evans.It Ic create
1125952343eSKyle Evans.Op Fl r
1135952343eSKyle Evans.Ao Ar beName@snapshot Ac
1145952343eSKyle Evans.Pp
1155952343eSKyle EvansCreates a snapshot of the existing boot environment named
1165952343eSKyle Evans.Ar beName .
1175952343eSKyle EvansIf the
1185952343eSKyle Evans.Op Fl r
1195952343eSKyle Evansflag is given, a recursive boot environment will be made.
1205952343eSKyle Evans.It Ic destroy
1215952343eSKyle Evans.Op Fl F
1225952343eSKyle Evans.Ao Ar beName | beName@snapshot Ac
1235952343eSKyle Evans.Pp
1245952343eSKyle EvansDestroys the given
1255952343eSKyle Evans.Ar beName
1265952343eSKyle Evansboot environment or
1275952343eSKyle Evans.Ar beName@snapshot
1285952343eSKyle Evanssnapshot.
1295952343eSKyle EvansSpecifying
1305952343eSKyle Evans.Fl F
1315952343eSKyle Evanswill automatically unmount without confirmation.
132*34761e84SKyle Evans.It Ic export
133*34761e84SKyle Evans.Ao Ar sourceBe Ac
134*34761e84SKyle Evans.Pp
135*34761e84SKyle EvansExport
136*34761e84SKyle Evans.Ar sourceBe
137*34761e84SKyle Evansto
138*34761e84SKyle Evans.Dv stdout .
139*34761e84SKyle Evans.Dv stdout
140*34761e84SKyle Evansmust be piped or redirected to a file.
141*34761e84SKyle Evans.It Ic import
142*34761e84SKyle Evans.Ao Ar targetBe Ac
143*34761e84SKyle Evans.Pp
144*34761e84SKyle EvansImport
145*34761e84SKyle Evans.Ar targetBe
146*34761e84SKyle Evansfrom
147*34761e84SKyle Evans.Dv stdin .
1485952343eSKyle Evans.It Ic jail
1492a0b8dc2SKyle Evans.Oo Fl o Ar key Ns = Ns Ar value | Fl u Ar key Oc Ns ...
1505952343eSKyle Evans.Ao Ar jailID | jailName Ac
1515952343eSKyle Evans.Ao Ar bootenv Ac
1525952343eSKyle Evans.Pp
1535952343eSKyle EvansCreates a jail of the given boot environment.
154d694059fSKyle EvansMultiple
155d694059fSKyle Evans.Fl o
1562a0b8dc2SKyle Evansand
1572a0b8dc2SKyle Evans.Fl u
158d694059fSKyle Evansarguments may be specified.
1592a0b8dc2SKyle Evans.Fl o
1602a0b8dc2SKyle Evanswill set a jail parameter, and
1612a0b8dc2SKyle Evans.Fl u
1622a0b8dc2SKyle Evanswill unset a jail parameter.
1632a0b8dc2SKyle Evans.Pp
1642a0b8dc2SKyle EvansThe
1652a0b8dc2SKyle Evans.Va name ,
1662a0b8dc2SKyle Evans.Va host.hostname ,
1672a0b8dc2SKyle Evansand
1682a0b8dc2SKyle Evans.Va path
1692a0b8dc2SKyle Evansmay not actually be unset.
1702a0b8dc2SKyle EvansAttempts to unset any of these will revert them to the default values specified
1712a0b8dc2SKyle Evansbelow, if they have been overwritten by
1722a0b8dc2SKyle Evans.Fl o .
1732a0b8dc2SKyle Evans.Pp
1742a0b8dc2SKyle EvansAll
175d694059fSKyle Evans.Ar key ,
176d694059fSKyle Evans.Ar value
177d694059fSKyle Evanspairs are interpreted as jail parameters as described in
178d694059fSKyle Evans.Xr jail 8 .
179d694059fSKyle EvansThe following default parameters are provided:
180d694059fSKyle Evans.Bl -tag -width -indent
181d694059fSKyle Evans.It Va allow.mount Ns = Ns Ar true
182d694059fSKyle Evans.It Va allow.mount.devfs Ns = Ns Ar true
183d694059fSKyle Evans.It Va enforce_statfs Ns = Ns Ar 1
184d694059fSKyle Evans.It Va name Ns = Ns Ar bootenv
185d694059fSKyle Evans.It Va host.hostname Ns = Ns Ar bootenv
186d694059fSKyle Evans.It Va path
187d694059fSKyle EvansSet to a path in /tmp generated by
18884e61219SKyle Evans.Xr libbe 3 .
189d694059fSKyle Evans.El
1905952343eSKyle Evans.Pp
1912a0b8dc2SKyle EvansAll default parameters may be overwritten.
1925952343eSKyle Evans.It Ic list
1935952343eSKyle Evans.Op Fl a
1945952343eSKyle Evans.Op Fl D
1955952343eSKyle Evans.Op Fl H
1965952343eSKyle Evans.Op Fl s
1975952343eSKyle Evans.Pp
1985952343eSKyle EvansDisplays all boot environments.
1995952343eSKyle EvansThe Active field indicates whether the boot environment is active now (N); active on reboot (R); or both (NR).
2005952343eSKyle Evans.Pp
2015952343eSKyle EvansIf
2025952343eSKyle Evans.Fl a
2035952343eSKyle Evansis used, display all datasets.
2045952343eSKyle EvansIf
2055952343eSKyle Evans.Fl D
2065952343eSKyle Evansis used, display the full space usage for each boot environment, assuming all other boot environments were destroyed.
2075952343eSKyle EvansThe
2085952343eSKyle Evans.Fl H
20984e61219SKyle Evansoption is used for scripting.
21084e61219SKyle EvansIt does not print headers and separate fields by a single tab instead of arbitrary white space.
2115952343eSKyle EvansIf
2125952343eSKyle Evans.Fl s
2135952343eSKyle Evansis used, display all snapshots as well.
2145952343eSKyle Evans.It Ic mount
2155952343eSKyle Evans.Ao Ar beName Ac
2165952343eSKyle Evans.Op mountpoint
2175952343eSKyle Evans.Pp
2185952343eSKyle EvansTemporarily mount the boot environment.
2195952343eSKyle EvansMount at the specified
2205952343eSKyle Evans.Ar mountpoint
2215952343eSKyle Evansif provided.
2225952343eSKyle Evans.It Ic rename Ao Ar origBeName Ac Ao Ar newBeName Ac
2235952343eSKyle Evans.Pp
2245952343eSKyle EvansRenames the given nonactive
2255952343eSKyle Evans.Ar origBeName
2265952343eSKyle Evansto the given
2275952343eSKyle Evans.Ar newBeName
2285952343eSKyle Evans.It Ic unmount
2295952343eSKyle Evans.Op Fl f
2305952343eSKyle Evans.Ao Ar beName Ac
2315952343eSKyle Evans.Pp
2325952343eSKyle EvansUnmount the given boot environment, if it is mounted.
2335952343eSKyle EvansSpecifying
2345952343eSKyle Evans.Fl f
2355952343eSKyle Evanswill force the unmount if busy.
236ad765da4SKyle Evans.It Ic unjail Ao Ar jailID | jailName | beName Ac
2375952343eSKyle Evans.Pp
2385952343eSKyle EvansDestroys the jail created from the given boot environment.
2395952343eSKyle Evans.El
2405952343eSKyle Evans.Sh EXAMPLES
2415952343eSKyle Evans.Bl -bullet
2425952343eSKyle Evans.It
2435952343eSKyle EvansTo fill in with jail upgrade example when behavior is firm.
24484e61219SKyle Evans.El
2455952343eSKyle Evans.Sh SEE ALSO
2465952343eSKyle Evans.Xr jail 8 ,
2475952343eSKyle Evans.Xr zfs 8 ,
2485952343eSKyle Evans.Xr zpool 8
2495952343eSKyle Evans.Sh HISTORY
2505952343eSKyle Evans.Nm
2515952343eSKyle Evansis based on
2525952343eSKyle Evans.Xr beadm 1
2535952343eSKyle Evansand was implemented as a project for the 2017 Summer of Code, along with
2545952343eSKyle Evans.Xr libbe 3 .
2555952343eSKyle Evans.Sh AUTHORS
2565952343eSKyle Evans.Bl -bullet
2575952343eSKyle Evans.It
258*34761e84SKyle Evans.An Kyle Kneitinger (kneitinger) Aq Mt kyle@kneit.in
2595952343eSKyle Evans.Pp
2605952343eSKyle EvansCreator of
2615952343eSKyle Evans.Nm .
2625952343eSKyle Evans.It
263*34761e84SKyle Evans.An Slawomir Wojciech Wojtczak (vermaden) Aq Mt vermaden@interia.pl
2645952343eSKyle Evans.Pp
2655952343eSKyle EvansCreator and maintainer of
2665952343eSKyle Evans.Xr beadm 1 .
2675952343eSKyle Evans.It
268*34761e84SKyle Evans.An Bryan Drewery (bdrewery) Aq Mt bryan@shatow.net
2695952343eSKyle Evans.Pp
2705952343eSKyle EvansWrote the original
2715952343eSKyle Evans.Xr beadm 1
2725952343eSKyle Evansmanual page that this one is derived from.
2735952343eSKyle Evans.El
274