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*55ece394SKyle Evans.Dd May 12, 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 38*55ece394SKyle Evans.Cm create 39*55ece394SKyle Evans.Op Fl r 40*55ece394SKyle Evans.Ar beName@snapshot 41*55ece394SKyle 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 605952343eSKyle Evans.Nm 61d81df689SKyle Evans.Cm mount 62d81df689SKyle Evans.Ar beName 6377688bffSMateusz Piotrowski.Op Ar mountpoint 645952343eSKyle Evans.Nm 65d81df689SKyle Evans.Cm rename 66d81df689SKyle Evans.Ar origBeName 67d81df689SKyle Evans.Ar newBeName 685952343eSKyle Evans.Nm 69d81df689SKyle Evans.Brq Cm ujail | unjail 7077688bffSMateusz Piotrowski.Brq Ar jailId | jailName 7177688bffSMateusz Piotrowski.Ar beName 725952343eSKyle Evans.Nm 73d81df689SKyle Evans.Brq Cm umount | unmount 745952343eSKyle Evans.Op Fl f 75d81df689SKyle Evans.Ar beName 7677688bffSMateusz Piotrowski.Pp 7777688bffSMateusz Piotrowski.Nm 7877688bffSMateusz Piotrowski.Op Fl h\&? 795952343eSKyle Evans.Sh DESCRIPTION 805952343eSKyle EvansThe 815952343eSKyle Evans.Nm 82d81df689SKyle Evanscommand is used to setup and interact with ZFS boot environments, which are 83d81df689SKyle Evansbootable clones of datasets. 845952343eSKyle Evans.Pp 8577688bffSMateusz PiotrowskiBoot environments 8677688bffSMateusz Piotrowskiallow the system to be upgraded, while preserving the old system environment in 87d81df689SKyle Evansa separate ZFS dataset. 8877688bffSMateusz Piotrowski.Pp 895952343eSKyle EvansThe following commands are supported by 905952343eSKyle Evans.Nm : 915952343eSKyle Evans.Bl -tag -width activate 92d81df689SKyle Evans.It Xo 93d81df689SKyle Evans.Cm activate 945952343eSKyle Evans.Op Fl t 95d81df689SKyle Evans.Ar beName 96d81df689SKyle Evans.Xc 975952343eSKyle EvansActivate the given 985952343eSKyle Evans.Ar beName 9984e61219SKyle Evansas the default boot filesystem. 10084e61219SKyle EvansIf the 1015952343eSKyle Evans.Op Fl t 1025952343eSKyle Evansflag is given, this takes effect only for the next boot. 103d81df689SKyle Evans.It Xo 104d81df689SKyle Evans.Cm create 1055952343eSKyle Evans.Op Fl r 10677688bffSMateusz Piotrowski.Op Fl e Brq Ar nonActiveBe | Ar beName Ns Cm @ Ns Ar snapshot 10777688bffSMateusz Piotrowski.Ar newBeName 108d81df689SKyle Evans.Xc 10977688bffSMateusz PiotrowskiCreate a new boot environment named 11077688bffSMateusz Piotrowski.Ar newBeName . 11177688bffSMateusz Piotrowski.Pp 11277688bffSMateusz PiotrowskiIf the 11377688bffSMateusz Piotrowski.Fl r 11477688bffSMateusz Piotrowskiflag is given, a recursive boot environment will be made. 11577688bffSMateusz Piotrowski.Pp 1165952343eSKyle EvansIf the 117d81df689SKyle Evans.Fl e 11877688bffSMateusz Piotrowskiflag is specified, the new environment will be cloned from the given 11977688bffSMateusz Piotrowski.Ar nonActiveBe 12077688bffSMateusz Piotrowskior 12177688bffSMateusz Piotrowski.Ar beName Ns Cm @ Ns Ar snapshot . 12277688bffSMateusz PiotrowskiOtherwise, the new environment will be created from the currently booted environment. 12377688bffSMateusz Piotrowski.Pp 12477688bffSMateusz PiotrowskiIf 12577688bffSMateusz Piotrowski.Nm 12677688bffSMateusz Piotrowskiis creating from another boot environment, a snapshot of that boot environment will be created to clone from. 127d81df689SKyle Evans.It Xo 128*55ece394SKyle Evans.Cm create 129*55ece394SKyle Evans.Op Fl r 130*55ece394SKyle Evans.Ar beName@snapshot 131*55ece394SKyle Evans.Xc 132*55ece394SKyle EvansCreate a snapshot of the boot environment named 133*55ece394SKyle Evans.Ar beName . 134*55ece394SKyle Evans.Pp 135*55ece394SKyle EvansIf the 136*55ece394SKyle Evans.Fl r 137*55ece394SKyle Evansflag is given, a recursive snapshot of the boot environment will be created. 138*55ece394SKyle EvansA snapshot is created for each descendant dataset of the boot environment. 139*55ece394SKyle Evans.Pp 140*55ece394SKyle EvansNo new boot environment is created with this command. 141*55ece394SKyle Evans.It Xo 142d81df689SKyle Evans.Cm destroy 14377b4126cSKyle Evans.Op Fl \&Fo 14477688bffSMateusz Piotrowski.Ar beName Ns Op Cm @ Ns Ar snapshot 145d81df689SKyle Evans.Xc 14677688bffSMateusz PiotrowskiDestroy the given 1475952343eSKyle Evans.Ar beName 1485952343eSKyle Evansboot environment or 14977688bffSMateusz Piotrowski.Ar beName Ns Cm @ Ns Ar snapshot 1508369ba42SKyle Evanssnapshot without confirmation, unlike in 15177688bffSMateusz Piotrowski.Xr beadm 1 . 1525952343eSKyle EvansSpecifying 1535952343eSKyle Evans.Fl F 1545952343eSKyle Evanswill automatically unmount without confirmation. 15577b4126cSKyle Evans.Pp 15677b4126cSKyle EvansBy default, 15777b4126cSKyle Evans.Nm 15877b4126cSKyle Evanswill warn that it is not destroying the origin of 15977b4126cSKyle Evans.Ar beName . 16077b4126cSKyle EvansThe 16177b4126cSKyle Evans.Fl o 16277b4126cSKyle Evansflag may be specified to destroy the origin as well. 163d81df689SKyle Evans.It Cm export Ar sourceBe 16434761e84SKyle EvansExport 16534761e84SKyle Evans.Ar sourceBe 16634761e84SKyle Evansto 16777688bffSMateusz Piotrowski.Xr stdout 4 . 16877688bffSMateusz Piotrowski.Xr stdout 4 16934761e84SKyle Evansmust be piped or redirected to a file. 170d81df689SKyle Evans.It Cm import Ar targetBe 17134761e84SKyle EvansImport 17234761e84SKyle Evans.Ar targetBe 17334761e84SKyle Evansfrom 17477688bffSMateusz Piotrowski.Xr stdin 4 . 175d81df689SKyle Evans.It Xo 176d81df689SKyle Evans.Cm jail 17777688bffSMateusz Piotrowski.Op Fl bU 17877688bffSMateusz Piotrowski.Oo Bro Fl o Ar key Ns Cm = Ns Ar value | Fl u Ar key Brc Oc Ns ... 17977688bffSMateusz Piotrowski.Ar beName 180cd816834SKyle Evans.Op Ar utility Op Ar argument ... 181d81df689SKyle Evans.Xc 18277688bffSMateusz PiotrowskiCreate a jail of the given boot environment. 183d694059fSKyle EvansMultiple 184d694059fSKyle Evans.Fl o 1852a0b8dc2SKyle Evansand 1862a0b8dc2SKyle Evans.Fl u 187d694059fSKyle Evansarguments may be specified. 1882a0b8dc2SKyle Evans.Fl o 1892a0b8dc2SKyle Evanswill set a jail parameter, and 1902a0b8dc2SKyle Evans.Fl u 1912a0b8dc2SKyle Evanswill unset a jail parameter. 192cd816834SKyle Evans.Pp 193cd816834SKyle EvansBy default, jails are created in interactive mode and 194cd816834SKyle Evans.Pa /bin/sh 195cd816834SKyle Evansis 196b509cad4SKyle Evansexecuted within the jail. 197cd816834SKyle EvansIf 198cd816834SKyle Evans.Ar utility 199cd816834SKyle Evansis specified, it will be executed instead of 200cd816834SKyle Evans.Pa /bin/sh . 201db9db0e7SKyle EvansThe jail will be destroyed and the boot environment unmounted when the command 202db9db0e7SKyle Evansfinishes executing, unless the 203db9db0e7SKyle Evans.Fl U 204db9db0e7SKyle Evansargument is specified. 205cd816834SKyle Evans.Pp 206b509cad4SKyle EvansThe 207b509cad4SKyle Evans.Fl b 208b509cad4SKyle Evansargument enables batch mode, thereby disabling interactive mode. 209db9db0e7SKyle EvansThe 210db9db0e7SKyle Evans.Fl U 211db9db0e7SKyle Evansargument will be ignored in batch mode. 2122a0b8dc2SKyle Evans.Pp 2132a0b8dc2SKyle EvansThe 2142a0b8dc2SKyle Evans.Va name , 2152a0b8dc2SKyle Evans.Va host.hostname , 2162a0b8dc2SKyle Evansand 2172a0b8dc2SKyle Evans.Va path 2187ce09314SKyle Evansmust be set, the default values are specified below. 2192a0b8dc2SKyle Evans.Pp 2202a0b8dc2SKyle EvansAll 22177688bffSMateusz Piotrowski.Ar key Ns Cm = Ns Ar value 222d694059fSKyle Evanspairs are interpreted as jail parameters as described in 223d694059fSKyle Evans.Xr jail 8 . 224d694059fSKyle EvansThe following default parameters are provided: 225d81df689SKyle Evans.Bl -column "allow.mount.devfs" "" 226d81df689SKyle Evans.It Va allow.mount Ta Cm true 227d81df689SKyle Evans.It Va allow.mount.devfs Ta Cm true 228d81df689SKyle Evans.It Va enforce_statfs Ta Cm 1 22977688bffSMateusz Piotrowski.It Va name Ta Set to jail ID. 230d81df689SKyle Evans.It Va host.hostname Ta Va bootenv 23177688bffSMateusz Piotrowski.It Va path Ta Set to a path in Pa /tmp 23277688bffSMateusz Piotrowskigenerated by 23384e61219SKyle Evans.Xr libbe 3 . 234d694059fSKyle Evans.El 2355952343eSKyle Evans.Pp 2362a0b8dc2SKyle EvansAll default parameters may be overwritten. 23777688bffSMateusz Piotrowski.It Cm list Op Fl aDHs 23877688bffSMateusz PiotrowskiDisplay all boot environments. 23977688bffSMateusz PiotrowskiThe 24077688bffSMateusz Piotrowski.Em Active 24177688bffSMateusz Piotrowskifield indicates whether the boot environment is active now 24277688bffSMateusz Piotrowski.Pq Em \&N ; 24377688bffSMateusz Piotrowskiactive on reboot 24477688bffSMateusz Piotrowski.Pq Em \&R ; 24577688bffSMateusz Piotrowskior both 24677688bffSMateusz Piotrowski.Pq Em \&NR . 2475952343eSKyle Evans.Pp 2485952343eSKyle EvansIf 2495952343eSKyle Evans.Fl a 2505952343eSKyle Evansis used, display all datasets. 2515952343eSKyle EvansIf 2525952343eSKyle Evans.Fl D 253d81df689SKyle Evansis used, display the full space usage for each boot environment, assuming all 254d81df689SKyle Evansother boot environments were destroyed. 2555952343eSKyle EvansThe 2565952343eSKyle Evans.Fl H 25784e61219SKyle Evansoption is used for scripting. 258d81df689SKyle EvansIt does not print headers and separate fields by a single tab instead of 259d81df689SKyle Evansarbitrary white space. 2605952343eSKyle EvansIf 2615952343eSKyle Evans.Fl s 2625952343eSKyle Evansis used, display all snapshots as well. 263d81df689SKyle Evans.It Cm mount Ar beName Op Ar mountpoint 2645952343eSKyle EvansTemporarily mount the boot environment. 2655952343eSKyle EvansMount at the specified 2665952343eSKyle Evans.Ar mountpoint 2675952343eSKyle Evansif provided. 268d81df689SKyle Evans.It Cm rename Ar origBeName newBeName 26977688bffSMateusz PiotrowskiRename the given 2705952343eSKyle Evans.Ar origBeName 2715952343eSKyle Evansto the given 272d81df689SKyle Evans.Ar newBeName . 2738369ba42SKyle EvansThe boot environment will not be unmounted in order for this rename to occur. 27477688bffSMateusz Piotrowski.It Cm ujail Bro Ar jailId | jailName Brc Ar beName 27577688bffSMateusz Piotrowski.It Cm unjail Bro Ar jailId | jailName Brc Ar beName 27677688bffSMateusz PiotrowskiDestroy the jail created from the given boot environment. 27777688bffSMateusz Piotrowski.It Xo 27877688bffSMateusz Piotrowski.Cm umount 27977688bffSMateusz Piotrowski.Op Fl f 28077688bffSMateusz Piotrowski.Ar beName 28177688bffSMateusz Piotrowski.Xc 282d81df689SKyle Evans.It Xo 283d81df689SKyle Evans.Cm unmount 2845952343eSKyle Evans.Op Fl f 285d81df689SKyle Evans.Ar beName 286d81df689SKyle Evans.Xc 2875952343eSKyle EvansUnmount the given boot environment, if it is mounted. 2885952343eSKyle EvansSpecifying 2895952343eSKyle Evans.Fl f 2905952343eSKyle Evanswill force the unmount if busy. 2915952343eSKyle Evans.El 29277688bffSMateusz Piotrowski.Pp 29377688bffSMateusz Piotrowski.Nm 29477688bffSMateusz Piotrowskiprints usage information if 29577688bffSMateusz Piotrowski.Fl h 29677688bffSMateusz Piotrowskior 29777688bffSMateusz Piotrowski.Fl \&? 29877688bffSMateusz Piotrowskiis specified. 2995952343eSKyle Evans.Sh EXAMPLES 3005952343eSKyle Evans.Bl -bullet 3015952343eSKyle Evans.It 3025952343eSKyle EvansTo fill in with jail upgrade example when behavior is firm. 30384e61219SKyle Evans.El 3045952343eSKyle Evans.Sh SEE ALSO 30577688bffSMateusz Piotrowski.Xr beinstall.sh 1 , 306f5c8cb4cSMateusz Piotrowski.Xr libbe 3 , 3075952343eSKyle Evans.Xr jail 8 , 3085952343eSKyle Evans.Xr zfs 8 , 3095952343eSKyle Evans.Xr zpool 8 3105952343eSKyle Evans.Sh HISTORY 3115952343eSKyle Evans.Nm 3125952343eSKyle Evansis based on 31377688bffSMateusz Piotrowski.Xr beadm 1 3145952343eSKyle Evansand was implemented as a project for the 2017 Summer of Code, along with 3155952343eSKyle Evans.Xr libbe 3 . 3165952343eSKyle Evans.Sh AUTHORS 317d81df689SKyle Evans.Nm 318d81df689SKyle Evanswas written by 319d81df689SKyle Evans.An Kyle Kneitinger (kneitinger) Aq Mt kyle@kneit.in . 3205952343eSKyle Evans.Pp 32177688bffSMateusz Piotrowski.Xr beadm 1 322d81df689SKyle Evanswas written and is maintained by 323d81df689SKyle Evans.An Slawomir Wojciech Wojtczak (vermaden) Aq Mt vermaden@interia.pl . 3245952343eSKyle Evans.Pp 32534761e84SKyle Evans.An Bryan Drewery (bdrewery) Aq Mt bryan@shatow.net 326d81df689SKyle Evanswrote the original 32777688bffSMateusz Piotrowski.Xr beadm 1 3285952343eSKyle Evansmanual page that this one is derived from. 329