xref: /freebsd/sbin/bectl/bectl.8 (revision 4163bae03051839c739c0133605b4ef494ee8f6a)
15952343eSKyle Evans.\"
2b179da01SKyle Evans.\" SPDX-License-Identifier: BSD-2-Clause-FreeBSD
3b179da01SKyle Evans.\"
4b179da01SKyle Evans.\" Copyright (c) 2017 Kyle J. Kneitinger <kyle@kneit.in>
55952343eSKyle Evans.\"
65952343eSKyle Evans.\" Redistribution and use in source and binary forms, with or without
75952343eSKyle Evans.\" modification, are permitted provided that the following conditions
85952343eSKyle Evans.\" are met:
95952343eSKyle Evans.\" 1. Redistributions of source code must retain the above copyright
105952343eSKyle Evans.\"    notice, this list of conditions and the following disclaimer.
115952343eSKyle Evans.\" 2. Redistributions in binary form must reproduce the above copyright
125952343eSKyle Evans.\"    notice, this list of conditions and the following disclaimer in the
135952343eSKyle Evans.\"    documentation and/or other materials provided with the distribution.
145952343eSKyle Evans.\"
155952343eSKyle Evans.\"
165952343eSKyle Evans.\"     @(#)be.1
17b6e7c421SKyle Evans.\"
185952343eSKyle Evans.\" $FreeBSD$
195952343eSKyle Evans.\"
20*4163bae0SKyle Evans.Dd April 26, 2023
21edbfe3bcSKyle Evans.Dt BECTL 8
2284e61219SKyle Evans.Os
235952343eSKyle Evans.Sh NAME
24edbfe3bcSKyle Evans.Nm bectl
2577688bffSMateusz Piotrowski.Nd Utility to manage boot environments on ZFS
265952343eSKyle Evans.Sh SYNOPSIS
275952343eSKyle Evans.Nm
28*4163bae0SKyle Evans.Op Fl r Ar beroot
29d81df689SKyle Evans.Cm activate
30e307eb94SToomas Soome.Op Fl t | Fl T
31d81df689SKyle Evans.Ar beName
325952343eSKyle Evans.Nm
33*4163bae0SKyle Evans.Op Fl r Ar beroot
34490e13c1SKyle Evans.Cm check
35490e13c1SKyle Evans.Nm
36*4163bae0SKyle Evans.Op Fl r Ar beroot
37d81df689SKyle Evans.Cm create
385952343eSKyle Evans.Op Fl r
3977688bffSMateusz Piotrowski.Op Fl e Brq Ar nonActiveBe | Ar beName Ns Cm @ Ns Ar snapshot
4077688bffSMateusz Piotrowski.Ar newBeName
415952343eSKyle Evans.Nm
42*4163bae0SKyle Evans.Op Fl r Ar beroot
4355ece394SKyle Evans.Cm create
4455ece394SKyle Evans.Op Fl r
4555ece394SKyle Evans.Ar beName@snapshot
4655ece394SKyle Evans.Nm
47*4163bae0SKyle Evans.Op Fl r Ar beroot
48d81df689SKyle Evans.Cm destroy
4977b4126cSKyle Evans.Op Fl \&Fo
5077688bffSMateusz Piotrowski.Ar beName Ns Op Cm @ Ns Ar snapshot
515952343eSKyle Evans.Nm
52*4163bae0SKyle Evans.Op Fl r Ar beroot
53d81df689SKyle Evans.Cm export
54d81df689SKyle Evans.Ar sourceBe
5534761e84SKyle Evans.Nm
56*4163bae0SKyle Evans.Op Fl r Ar beroot
57d81df689SKyle Evans.Cm import
58d81df689SKyle Evans.Ar targetBe
5934761e84SKyle Evans.Nm
60*4163bae0SKyle Evans.Op Fl r Ar beroot
61d81df689SKyle Evans.Cm jail
6277688bffSMateusz Piotrowski.Op Fl bU
6377688bffSMateusz Piotrowski.Oo Bro Fl o Ar key Ns Cm = Ns Ar value | Fl u Ar key Brc Oc Ns ...
6477688bffSMateusz Piotrowski.Ar beName
65cd816834SKyle Evans.Op Ar utility Op Ar argument ...
665952343eSKyle Evans.Nm
67*4163bae0SKyle Evans.Op Fl r Ar beroot
68d81df689SKyle Evans.Cm list
6977688bffSMateusz Piotrowski.Op Fl aDHs
70f0298be0SKyle Evans.Op Fl c Ar property
71f0298be0SKyle Evans.Op Fl C Ar property
72f0298be0SKyle Evans.Oo Bro Fl c Ar property | Fl C Ar property Brc Oc
735952343eSKyle Evans.Nm
74*4163bae0SKyle Evans.Op Fl r Ar beroot
75d81df689SKyle Evans.Cm mount
76d81df689SKyle Evans.Ar beName
7777688bffSMateusz Piotrowski.Op Ar mountpoint
785952343eSKyle Evans.Nm
79*4163bae0SKyle Evans.Op Fl r Ar beroot
80d81df689SKyle Evans.Cm rename
81d81df689SKyle Evans.Ar origBeName
82d81df689SKyle Evans.Ar newBeName
835952343eSKyle Evans.Nm
84*4163bae0SKyle Evans.Op Fl r Ar beroot
85d81df689SKyle Evans.Brq Cm ujail | unjail
86b1ea63e2SRobert Wing.Brq Ar jailId | jailName | beName
875952343eSKyle Evans.Nm
88*4163bae0SKyle Evans.Op Fl r Ar beroot
89d81df689SKyle Evans.Brq Cm umount | unmount
905952343eSKyle Evans.Op Fl f
91d81df689SKyle Evans.Ar beName
9277688bffSMateusz Piotrowski.Pp
9377688bffSMateusz Piotrowski.Nm
9477688bffSMateusz Piotrowski.Op Fl h\&?
955952343eSKyle Evans.Sh DESCRIPTION
965952343eSKyle EvansThe
975952343eSKyle Evans.Nm
98d81df689SKyle Evanscommand is used to setup and interact with ZFS boot environments, which are
99d81df689SKyle Evansbootable clones of datasets.
1005952343eSKyle Evans.Pp
10177688bffSMateusz PiotrowskiBoot environments
10277688bffSMateusz Piotrowskiallow the system to be upgraded, while preserving the old system environment in
103d81df689SKyle Evansa separate ZFS dataset.
10477688bffSMateusz Piotrowski.Pp
105*4163bae0SKyle Evans.Nm
106*4163bae0SKyle Evansitself accepts an
107*4163bae0SKyle Evans.Fl r
108*4163bae0SKyle Evansflag specified before the command to indicate the
109*4163bae0SKyle Evans.Ar beroot
110*4163bae0SKyle Evansthat should be used as the boot environment root, or the dataset whose children
111*4163bae0SKyle Evansare all boot environments.
112*4163bae0SKyle EvansNormally this information is derived from the bootfs property of the pool that
113*4163bae0SKyle Evansis mounted at
114*4163bae0SKyle Evans.Pa / ,
115*4163bae0SKyle Evansbut it is useful when the system has not been booted into a ZFS root or a
116*4163bae0SKyle Evansdifferent pool should be operated on.
117*4163bae0SKyle EvansFor instance, booting into the recovery media and manually importing a pool from
118*4163bae0SKyle Evansone of the system's resident disks will require the
119*4163bae0SKyle Evans.Fl r
120*4163bae0SKyle Evansflag to work.
121*4163bae0SKyle Evans.Pp
1225952343eSKyle EvansThe following commands are supported by
1235952343eSKyle Evans.Nm :
1245952343eSKyle Evans.Bl -tag -width activate
125d81df689SKyle Evans.It Xo
126d81df689SKyle Evans.Cm activate
127e307eb94SToomas Soome.Op Fl t | Fl T
128d81df689SKyle Evans.Ar beName
129d81df689SKyle Evans.Xc
1305952343eSKyle EvansActivate the given
1315952343eSKyle Evans.Ar beName
13284e61219SKyle Evansas the default boot filesystem.
13384e61219SKyle EvansIf the
13455b954c6SMateusz Piotrowski.Fl t
1355952343eSKyle Evansflag is given, this takes effect only for the next boot.
136e307eb94SToomas SoomeFlag
137e307eb94SToomas Soome.Fl T
138e307eb94SToomas Soomeremoves temporary boot once configuration.
139e307eb94SToomas SoomeWithout temporary configuration, the next boot will use zfs dataset specified
140e307eb94SToomas Soomein boot pool
141e307eb94SToomas Soome.Ar bootfs
142e307eb94SToomas Soomeproperty.
143d81df689SKyle Evans.It Xo
144490e13c1SKyle Evans.Cm check
145490e13c1SKyle Evans.Xc
146490e13c1SKyle EvansPerforms a silent sanity check on the current system.
147490e13c1SKyle EvansIf boot environments are supported and used,
148490e13c1SKyle Evans.Nm
149490e13c1SKyle Evanswill exit with a status code of 0.
150490e13c1SKyle EvansAny other status code is not currently defined and may, in the future, grow
151490e13c1SKyle Evansspecial meaning for different degrees of sanity check failures.
152490e13c1SKyle Evans.It Xo
153d81df689SKyle Evans.Cm create
1545952343eSKyle Evans.Op Fl r
15577688bffSMateusz Piotrowski.Op Fl e Brq Ar nonActiveBe | Ar beName Ns Cm @ Ns Ar snapshot
15677688bffSMateusz Piotrowski.Ar newBeName
157d81df689SKyle Evans.Xc
15877688bffSMateusz PiotrowskiCreate a new boot environment named
15977688bffSMateusz Piotrowski.Ar newBeName .
16077688bffSMateusz Piotrowski.Pp
16177688bffSMateusz PiotrowskiIf the
16277688bffSMateusz Piotrowski.Fl r
16377688bffSMateusz Piotrowskiflag is given, a recursive boot environment will be made.
164c0f846ffSKyle EvansSee
165c0f846ffSKyle Evans.Sx Boot Environment Structures
166c0f846ffSKyle Evansfor a discussion on different layouts.
16777688bffSMateusz Piotrowski.Pp
1685952343eSKyle EvansIf the
169d81df689SKyle Evans.Fl e
17077688bffSMateusz Piotrowskiflag is specified, the new environment will be cloned from the given
17177688bffSMateusz Piotrowski.Ar nonActiveBe
17277688bffSMateusz Piotrowskior
17377688bffSMateusz Piotrowski.Ar beName Ns Cm @ Ns Ar snapshot .
174*4163bae0SKyle EvansOtherwise, the new environment will be created from the currently booted
175*4163bae0SKyle Evansenvironment.
17677688bffSMateusz Piotrowski.Pp
17777688bffSMateusz PiotrowskiIf
17877688bffSMateusz Piotrowski.Nm
179*4163bae0SKyle Evansis creating from another boot environment, a snapshot of that boot environment
180*4163bae0SKyle Evanswill be created to clone from.
181d81df689SKyle Evans.It Xo
18255ece394SKyle Evans.Cm create
18355ece394SKyle Evans.Op Fl r
18455ece394SKyle Evans.Ar beName@snapshot
18555ece394SKyle Evans.Xc
18655ece394SKyle EvansCreate a snapshot of the boot environment named
18755ece394SKyle Evans.Ar beName .
18855ece394SKyle Evans.Pp
18955ece394SKyle EvansIf the
19055ece394SKyle Evans.Fl r
19155ece394SKyle Evansflag is given, a recursive snapshot of the boot environment will be created.
19255ece394SKyle EvansA snapshot is created for each descendant dataset of the boot environment.
193c0f846ffSKyle EvansSee
194c0f846ffSKyle Evans.Sx Boot Environment Structures
195c0f846ffSKyle Evansfor a discussion on different layouts.
19655ece394SKyle Evans.Pp
19755ece394SKyle EvansNo new boot environment is created with this command.
19855ece394SKyle Evans.It Xo
199d81df689SKyle Evans.Cm destroy
20077b4126cSKyle Evans.Op Fl \&Fo
20177688bffSMateusz Piotrowski.Ar beName Ns Op Cm @ Ns Ar snapshot
202d81df689SKyle Evans.Xc
20377688bffSMateusz PiotrowskiDestroy the given
2045952343eSKyle Evans.Ar beName
2055952343eSKyle Evansboot environment or
20677688bffSMateusz Piotrowski.Ar beName Ns Cm @ Ns Ar snapshot
2078369ba42SKyle Evanssnapshot without confirmation, unlike in
20877688bffSMateusz Piotrowski.Xr beadm 1 .
2095952343eSKyle EvansSpecifying
2105952343eSKyle Evans.Fl F
2115952343eSKyle Evanswill automatically unmount without confirmation.
21277b4126cSKyle Evans.Pp
21377b4126cSKyle EvansBy default,
21477b4126cSKyle Evans.Nm
21577b4126cSKyle Evanswill warn that it is not destroying the origin of
21677b4126cSKyle Evans.Ar beName .
21777b4126cSKyle EvansThe
21877b4126cSKyle Evans.Fl o
21977b4126cSKyle Evansflag may be specified to destroy the origin as well.
220d81df689SKyle Evans.It Cm export Ar sourceBe
22134761e84SKyle EvansExport
22234761e84SKyle Evans.Ar sourceBe
22334761e84SKyle Evansto
22477688bffSMateusz Piotrowski.Xr stdout 4 .
22577688bffSMateusz Piotrowski.Xr stdout 4
22634761e84SKyle Evansmust be piped or redirected to a file.
227d81df689SKyle Evans.It Cm import Ar targetBe
22834761e84SKyle EvansImport
22934761e84SKyle Evans.Ar targetBe
23034761e84SKyle Evansfrom
23177688bffSMateusz Piotrowski.Xr stdin 4 .
232d81df689SKyle Evans.It Xo
233d81df689SKyle Evans.Cm jail
23477688bffSMateusz Piotrowski.Op Fl bU
23577688bffSMateusz Piotrowski.Oo Bro Fl o Ar key Ns Cm = Ns Ar value | Fl u Ar key Brc Oc Ns ...
23677688bffSMateusz Piotrowski.Ar beName
237cd816834SKyle Evans.Op Ar utility Op Ar argument ...
238d81df689SKyle Evans.Xc
23977688bffSMateusz PiotrowskiCreate a jail of the given boot environment.
240d694059fSKyle EvansMultiple
241d694059fSKyle Evans.Fl o
2422a0b8dc2SKyle Evansand
2432a0b8dc2SKyle Evans.Fl u
244d694059fSKyle Evansarguments may be specified.
2452a0b8dc2SKyle Evans.Fl o
2462a0b8dc2SKyle Evanswill set a jail parameter, and
2472a0b8dc2SKyle Evans.Fl u
2482a0b8dc2SKyle Evanswill unset a jail parameter.
249cd816834SKyle Evans.Pp
250cd816834SKyle EvansBy default, jails are created in interactive mode and
251cd816834SKyle Evans.Pa /bin/sh
252cd816834SKyle Evansis
253b509cad4SKyle Evansexecuted within the jail.
254cd816834SKyle EvansIf
255cd816834SKyle Evans.Ar utility
256cd816834SKyle Evansis specified, it will be executed instead of
257cd816834SKyle Evans.Pa /bin/sh .
258db9db0e7SKyle EvansThe jail will be destroyed and the boot environment unmounted when the command
259db9db0e7SKyle Evansfinishes executing, unless the
260db9db0e7SKyle Evans.Fl U
261db9db0e7SKyle Evansargument is specified.
262cd816834SKyle Evans.Pp
263b509cad4SKyle EvansThe
264b509cad4SKyle Evans.Fl b
265b509cad4SKyle Evansargument enables batch mode, thereby disabling interactive mode.
266db9db0e7SKyle EvansThe
267db9db0e7SKyle Evans.Fl U
268db9db0e7SKyle Evansargument will be ignored in batch mode.
2692a0b8dc2SKyle Evans.Pp
2702a0b8dc2SKyle EvansThe
2712a0b8dc2SKyle Evans.Va name ,
2722a0b8dc2SKyle Evans.Va host.hostname ,
2732a0b8dc2SKyle Evansand
2742a0b8dc2SKyle Evans.Va path
2757ce09314SKyle Evansmust be set, the default values are specified below.
2762a0b8dc2SKyle Evans.Pp
2772a0b8dc2SKyle EvansAll
27877688bffSMateusz Piotrowski.Ar key Ns Cm = Ns Ar value
279d694059fSKyle Evanspairs are interpreted as jail parameters as described in
280d694059fSKyle Evans.Xr jail 8 .
281d694059fSKyle EvansThe following default parameters are provided:
282d81df689SKyle Evans.Bl -column "allow.mount.devfs" ""
283d81df689SKyle Evans.It Va allow.mount Ta Cm true
284d81df689SKyle Evans.It Va allow.mount.devfs Ta Cm true
285d81df689SKyle Evans.It Va enforce_statfs Ta Cm 1
28677688bffSMateusz Piotrowski.It Va name Ta Set to jail ID.
287d81df689SKyle Evans.It Va host.hostname Ta Va bootenv
28877688bffSMateusz Piotrowski.It Va path Ta Set to a path in Pa /tmp
28977688bffSMateusz Piotrowskigenerated by
29084e61219SKyle Evans.Xr libbe 3 .
291d694059fSKyle Evans.El
2925952343eSKyle Evans.Pp
2932a0b8dc2SKyle EvansAll default parameters may be overwritten.
294f0298be0SKyle Evans.It Xo
295f0298be0SKyle Evans.Cm list
296b1ea63e2SRobert Wing.Op Fl aDHs
297f0298be0SKyle Evans.Oo Bro Fl c Ar property | Fl C Ar property Brc Oc
298f0298be0SKyle Evans.Xc
299f0298be0SKyle Evans.Pp
30077688bffSMateusz PiotrowskiDisplay all boot environments.
30177688bffSMateusz PiotrowskiThe
30277688bffSMateusz Piotrowski.Em Active
30377688bffSMateusz Piotrowskifield indicates whether the boot environment is active now
30477688bffSMateusz Piotrowski.Pq Em \&N ;
30577688bffSMateusz Piotrowskiactive on reboot
30677688bffSMateusz Piotrowski.Pq Em \&R ;
307e307eb94SToomas Soomeis used on next boot once
308e307eb94SToomas Soome.Pq Em \&T ;
309e307eb94SToomas Soomeor combination of
310e307eb94SToomas Soome.Pq Em \&NRT .
311f0298be0SKyle Evans.Bl -tag -width indent
312f0298be0SKyle Evans.It Fl a
313f0298be0SKyle EvansDisplay all datasets.
314f0298be0SKyle Evans.It Fl D
315f0298be0SKyle EvansDisplay the full space usage for each boot environment, assuming all
316d81df689SKyle Evansother boot environments were destroyed.
317f0298be0SKyle Evans.It Fl H
318f0298be0SKyle EvansUsed for scripting.
319f0298be0SKyle EvansDo not print headers and separate fields by a single tab instead of
320d81df689SKyle Evansarbitrary white space.
321f0298be0SKyle Evans.It Fl s
322f0298be0SKyle EvansDisplay all snapshots as well.
323f0298be0SKyle Evans.It Fl c Ar property
324f0298be0SKyle EvansSort boot environments by given property name.
325f0298be0SKyle EvansThe following properties are supported:
326f0298be0SKyle Evans.Pp
327f0298be0SKyle Evans.Bl -tag -width 4n -offset indent -compact
328f0298be0SKyle Evans.It name (default output)
329f0298be0SKyle Evans.It creation
330f0298be0SKyle Evans.It origin
331f0298be0SKyle Evans.It used
332f0298be0SKyle Evans.It usedds
333f0298be0SKyle Evans.It usedsnap
334f0298be0SKyle Evans.It usedrefreserv
335f0298be0SKyle Evans.El
336f0298be0SKyle Evans.It Fl C Ar property
337f0298be0SKyle EvansSame as the
338f0298be0SKyle Evans.Fl c
339f0298be0SKyle Evansoption, but displays in descending order.
340f0298be0SKyle Evans.El
341f0298be0SKyle Evans.Pp
342f0298be0SKyle EvansThe
343f0298be0SKyle Evans.Fl D
344f0298be0SKyle Evansoption is ignored when either the
3455952343eSKyle Evans.Fl s
346f0298be0SKyle Evansor
347f0298be0SKyle Evans.Fl a
348f0298be0SKyle Evansoption is used.
349d81df689SKyle Evans.It Cm mount Ar beName Op Ar mountpoint
3505952343eSKyle EvansTemporarily mount the boot environment.
3515952343eSKyle EvansMount at the specified
3525952343eSKyle Evans.Ar mountpoint
3535952343eSKyle Evansif provided.
354d81df689SKyle Evans.It Cm rename Ar origBeName newBeName
35577688bffSMateusz PiotrowskiRename the given
3565952343eSKyle Evans.Ar origBeName
3575952343eSKyle Evansto the given
358d81df689SKyle Evans.Ar newBeName .
3598369ba42SKyle EvansThe boot environment will not be unmounted in order for this rename to occur.
360b1ea63e2SRobert Wing.It Cm ujail Brq Ar jailId | jailName | beName
361b1ea63e2SRobert Wing.It Cm unjail Brq Ar jailId | jailName | beName
36277688bffSMateusz PiotrowskiDestroy the jail created from the given boot environment.
36377688bffSMateusz Piotrowski.It Xo
36477688bffSMateusz Piotrowski.Cm umount
36577688bffSMateusz Piotrowski.Op Fl f
36677688bffSMateusz Piotrowski.Ar beName
36777688bffSMateusz Piotrowski.Xc
368d81df689SKyle Evans.It Xo
369d81df689SKyle Evans.Cm unmount
3705952343eSKyle Evans.Op Fl f
371d81df689SKyle Evans.Ar beName
372d81df689SKyle Evans.Xc
3735952343eSKyle EvansUnmount the given boot environment, if it is mounted.
3745952343eSKyle EvansSpecifying
3755952343eSKyle Evans.Fl f
3765952343eSKyle Evanswill force the unmount if busy.
3775952343eSKyle Evans.El
37877688bffSMateusz Piotrowski.Pp
37977688bffSMateusz Piotrowski.Nm
38077688bffSMateusz Piotrowskiprints usage information if
38177688bffSMateusz Piotrowski.Fl h
38277688bffSMateusz Piotrowskior
38377688bffSMateusz Piotrowski.Fl \&?
38477688bffSMateusz Piotrowskiis specified.
385c0f846ffSKyle Evans.Ss Boot Environment Structures
386c0f846ffSKyle EvansThe traditional
387c0f846ffSKyle Evans.Fx
388c0f846ffSKyle Evansboot environment layout, as created by the Auto ZFS option to
389c0f846ffSKyle Evans.Xr bsdinstall 8 ,
390c0f846ffSKyle Evansis a
391c0f846ffSKyle Evans.Dq shallow
392c0f846ffSKyle Evansboot environment structure, where boot environment datasets do not have any
393c0f846ffSKyle Evansdirectly subordinate datasets.
394c0f846ffSKyle EvansInstead, they're organized off in
395c0f846ffSKyle Evans.Pa zroot/ROOT ,
396c0f846ffSKyle Evansand they rely on datasets elsewhere in the pool having
397c0f846ffSKyle Evans.Dv canmount
398c0f846ffSKyle Evansset to
399c0f846ffSKyle Evans.Dv off .
400c0f846ffSKyle EvansFor instance, a simplified pool may be laid out as such:
401c0f846ffSKyle Evans.Bd -literal -offset indent
402c0f846ffSKyle Evans% zfs list -o name,canmount,mountpoint
403c0f846ffSKyle EvansNAME			CANMOUNT	MOUNTPOINT
404c0f846ffSKyle Evanszroot
405c0f846ffSKyle Evanszroot/ROOT		noauto		none
406c0f846ffSKyle Evanszroot/ROOT/default	noauto		none
407c0f846ffSKyle Evanszroot/usr		off		/usr
408c0f846ffSKyle Evanszroot/usr/home		on		/usr/home
409c0f846ffSKyle Evanszroot/var		on		/var
410c0f846ffSKyle Evans.Ed
411c0f846ffSKyle Evans.Pp
412c0f846ffSKyle EvansIn that example,
413c0f846ffSKyle Evans.Pa zroot/usr
414c0f846ffSKyle Evanshas
415c0f846ffSKyle Evans.Dv canmount
416c0f846ffSKyle Evansset to
417c0f846ffSKyle Evans.Dv off ,
418c0f846ffSKyle Evansthus files in
419c0f846ffSKyle Evans.Pa /usr
420c0f846ffSKyle Evanstypically fall into the boot environment because this dataset is not mounted.
421c0f846ffSKyle Evans.Pa zroot/usr/home
422c0f846ffSKyle Evansis mounted, thus files in
423c0f846ffSKyle Evans.Pa /usr/home
424c0f846ffSKyle Evansare not in the boot environment.
425c0f846ffSKyle Evans.Pp
426c0f846ffSKyle EvansThe other style of boot environments in use, frequently called
427c0f846ffSKyle Evans.Dq deep boot environments ,
428c0f846ffSKyle Evansorganizes some or all of the boot environment as subordinate to the boot
429c0f846ffSKyle Evansenvironment dataset.
430c0f846ffSKyle EvansFor example:
431c0f846ffSKyle Evans.Bd -literal -offset indent
432c0f846ffSKyle Evans% zfs list -o name,canmount,mountpoint
433c0f846ffSKyle EvansNAME				CANMOUNT	MOUNTPOINT
434c0f846ffSKyle Evanszroot
435c0f846ffSKyle Evanszroot/ROOT			noauto		none
436c0f846ffSKyle Evanszroot/ROOT/default		noauto		none
437c0f846ffSKyle Evanszroot/ROOT/default/usr		noauto		/usr
438c0f846ffSKyle Evanszroot/ROOT/default/usr/local	noauto		/usr/local
439c0f846ffSKyle Evanszroot/var			on		/var
440c0f846ffSKyle Evans.Ed
441c0f846ffSKyle Evans.Pp
442c0f846ffSKyle EvansNote that the subordinate datasets now have
443c0f846ffSKyle Evans.Dv canmount
444c0f846ffSKyle Evansset to
445c0f846ffSKyle Evans.Dv noauto .
446c0f846ffSKyle EvansThese are more obviously a part of the boot environment, as indicated by their
447c0f846ffSKyle Evanspositioning in the layout.
448c0f846ffSKyle EvansThese subordinate datasets will be mounted by the
449c0f846ffSKyle Evans.Dv zfsbe
450c0f846ffSKyle Evans.Xr rc 8
451c0f846ffSKyle Evansscript at boot time.
452c0f846ffSKyle EvansIn this example,
453c0f846ffSKyle Evans.Pa /var
454c0f846ffSKyle Evansis excluded from the boot environment.
455c0f846ffSKyle Evans.Pp
456c0f846ffSKyle Evans.Nm
457c0f846ffSKyle Evanscommands that have their own
458c0f846ffSKyle Evans.Fl r
459c0f846ffSKyle Evansoperate on this second,
460c0f846ffSKyle Evans.Dq deep
461c0f846ffSKyle Evansstyle of boot environment, when the
462c0f846ffSKyle Evans.Fl r
463c0f846ffSKyle Evansflag is set.
464c0f846ffSKyle EvansA future version of
465c0f846ffSKyle Evans.Nm
466c0f846ffSKyle Evansmay default to handling both styles and deprecate the various
467c0f846ffSKyle Evans.Fl r
468c0f846ffSKyle Evansflags.
469d6105756SMateusz Piotrowski\" .Sh EXAMPLES
470d6105756SMateusz Piotrowski\" .Bl -bullet
471d6105756SMateusz Piotrowski\" .It
472d6105756SMateusz Piotrowski\" To fill in with jail upgrade example when behavior is firm.
473d6105756SMateusz Piotrowski\" .El
4745952343eSKyle Evans.Sh SEE ALSO
475f5c8cb4cSMateusz Piotrowski.Xr libbe 3 ,
476cb67aaf2SAlan Somers.Xr beinstall.sh 8 ,
4775952343eSKyle Evans.Xr jail 8 ,
4785952343eSKyle Evans.Xr zfs 8 ,
4795952343eSKyle Evans.Xr zpool 8
4805952343eSKyle Evans.Sh HISTORY
4815952343eSKyle Evans.Nm
4825952343eSKyle Evansis based on
48377688bffSMateusz Piotrowski.Xr beadm 1
4845952343eSKyle Evansand was implemented as a project for the 2017 Summer of Code, along with
4855952343eSKyle Evans.Xr libbe 3 .
4865952343eSKyle Evans.Sh AUTHORS
487d81df689SKyle Evans.Nm
488d81df689SKyle Evanswas written by
489d81df689SKyle Evans.An Kyle Kneitinger (kneitinger) Aq Mt kyle@kneit.in .
4905952343eSKyle Evans.Pp
49177688bffSMateusz Piotrowski.Xr beadm 1
492d81df689SKyle Evanswas written and is maintained by
493d81df689SKyle Evans.An Slawomir Wojciech Wojtczak (vermaden) Aq Mt vermaden@interia.pl .
4945952343eSKyle Evans.Pp
49534761e84SKyle Evans.An Bryan Drewery (bdrewery) Aq Mt bryan@shatow.net
496d81df689SKyle Evanswrote the original
49777688bffSMateusz Piotrowski.Xr beadm 1
4985952343eSKyle Evansmanual page that this one is derived from.
499