[Bug 249413] bectl - should manipulate canmount on child datasets of the root instead of relying on /etc/rc.d/zfsbe

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Thu Sep 17 23:58:13 UTC 2020


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=249413

            Bug ID: 249413
           Summary: bectl - should manipulate canmount on child datasets
                    of the root instead of relying on /etc/rc.d/zfsbe
           Product: Base System
           Version: 11.4-RELEASE
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: bin
          Assignee: bugs at FreeBSD.org
          Reporter: freebsd at juicer.orange-carb.org

bectl uses a counterintuitive and confusing approach to mounting child datasets
of the root in boot environments.

The current approach sets all boot environment datasets to canmount=noauto and
relies on /etc/rc.d/zfsbe to mount individual child datasets. 

This works, but is unnecessarily opaque and results in unexpected behaviour
relative to the normal expectation of zfs filesystem mounting. In addition, the
approach requires a specific naming scheme for child datasets (see comments in
/etc/rc.d/zfsbe) that appears unnecessary and is undocumented from the
perspective of a user trying to use the provided tools without detailed
knowledge of the scheme.

I suggest that bectl be modified to set the zfs canmount=on property on the
root dataset and all child datasets when activating a boot environment, and set
the zfs canmount=noauto property on the root and child datasets of the boot
environment that is deactivated. In this arrangement there would be no need for
magic behaviour from /etc/rc.d/zfsbe at boot time.

In addition, the current behaviour for child datasets is undocumented in the
bectl manpage (which is quite terse) as is the naming scheme requirements in
/etc/rc.d/zfsbe. Regardless of the outcome of this bug, bectl needs additional
documentation on child datasets of the root, as the process is not fully
explained. For example, the significance of the -r flag on 'bectl create' needs
to be explained in the context of child datasets of the root.

The discussion at the following forum thread may also be helpful.
https://forums.freebsd.org/threads/boot-environments-child-datasets-not-activating.77002/

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-bugs mailing list