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