Re: boot environment and /var/db/etcupdate ?
- Reply: Ronald Klop : "Re: boot environment and /var/db/etcupdate ?"
- In reply to: John Kennedy : "Re: boot environment and /var/db/etcupdate ?"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 24 Aug 2022 08:46:10 UTC
On 2022-Aug-23 15:52:53 -0700, John Kennedy <warlock@phouka.net> wrote: >On Tue, Aug 23, 2022 at 04:02:48PM +0200, Ronald Klop wrote: >> Hi, >> >> I'm running the super duper boot environment using ZFS. [1] >> >> I have /var and /usr/local as separate datasets. These do not change when I upgrade the OS and that keeps the backups a lot smaller as the backup sees a new BE as a new dataset and fully zfs sends all the data again. >> >> But when I rollback /var/db/etcupdate is not in sync with / anymore. >> And /var/db/ports and /var/db/pkg should be kept in sync with /usr/local. But I do not need to rollback these if I need to go back to the previous BE. Looking in /var, the only thing I can see that needs to track the BE is /var/db/etcupdate - everything else should preferentially be outside the BE (and having things like e.g. /var/mail in the BE will cause problems if you rollback the BE). /usr/local and /var/db/pkg need to track to prevent package installation metadata getting out of step with the actual installed packages. > For my part, /var/db/pkg is mostly just a reference to my local >poudriere package stash and is relevant to the BE (but pretty stagnant >unless I'm changing major versions between 12/13/14). On my system, >/var/db is part of /. Several database ports default to putting their data under /var/db so having that in a BE is likely to cause problems if you rollback. > I'd be a little leery of having /usr/local decoupled from the BE, >but that's mostly worried about things like kernel drivers that would >get out of sync with the kernel in the BE. Kernel driver ports should all be in /boot/modules, not /usr/local (this does mean that rolling back a BE will cause problems with the metadata associated with those ports, but typically there are relatively few such ports). I don't believe there are any other ports that are tightly bound to the actual running kernel (though sysutils/lsof comes close). A downside of putting /usr/local in the BE is that another large collection of ports default to storing their data under /usr/local and that should be decoupled from BEs. Overall, I don't believe there's a one-size-fits-all solution to identifying what should be part of the BE. If you are using BEs to switch between major versions, it probably does make sense to include /usr/local in the BE - but then you need to extricate all the application data that needs to not be rolled back. -- Peter Jeremy