Re: Good practices with bectl
- Reply: Nuno Teixeira : "Re: Good practices with bectl"
- Reply: Paul Mather : "Re: Good practices with bectl"
- Reply: Alexander Leidinger : "Re: Good practices with bectl"
- Reply: Renato Botelho : "Re: Good practices with bectl"
- Reply: Patrick Bowen: "Drm-kmod and 14-CURRENT"
- In reply to: Nuno Teixeira : "Good practices with bectl"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 20 Sep 2022 22:19:49 UTC
On Tue, Sep 20, 2022 at 4:14 PM Nuno Teixeira <eduardo@freebsd.org> wrote: > > Hello to all, > > I will use becl for the first time for current upgrades. > Just to check that I'm thinking correctly: > > Create a test environment for upgrade: > > bectl create -r test (should I use '-r'?) > Activate test: > > bectl activate test > > reboot > ... > > upgrade OS on test > > reboot > ... > if a problem happens, reboot default from BE loader > --- > if everything fine destroy default and rename test to default > > bectl destroy -o default > > bectl rename test default > repeat on next upgrade > > Don't know if a faster way exists with chroot or bectl jail... > > Any hints appreciated. > > Thanks, > -- > Nuno Teixeira > FreeBSD Committer (ports) I don't think you need to use "-r". Also, you're forgetting one of the best things about boot environments: you can upgrade them even when not booted into them. That's faster than upgrading the running BE. Here is the procedure I use: RELEASE=Whatever sudo bectl create ${RELEASE} sudo bectl mount ${RELEASE} BASEDIR=/tmp/be_mount.XXXX # Use mount point returned by bectl mount sudo freebsd-update -b ${BASEDIR} -d ${BASEDIR}/var/db/freebsd-update upgrade -r ${RELEASE} sudo freebsd-update -b ${BASEDIR} -d ${BASEDIR}/var/db/freebsd-update install # Ignore admonitions to reboot, since we're using a boot environment sudo freebsd-update -b ${BASEDIR} -d ${BASEDIR}/var/db/freebsd-update install sudo bectl activate ${RELEASE} sudo reboot This general procedure works just as well if you're upgrading from source, too. sudo make DESTDIR=${BASEDIR} installworld sudo mergemaster -m $PWD -D $BASEDIR -U -Alan