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