[systemd-devel] systemd-repart /etc automount via discoverable partition specification

Lennart Poettering lennart at poettering.net
Mon Sep 11 09:49:02 UTC 2023


On Mo, 11.09.23 11:39, Nils Kattenbeck (nilskemail at gmail.com) wrote:

> On Mon, Sep 11, 2023, 10:54 Lennart Poettering <lennart at poettering.net>
> wrote:
>
> > On So, 10.09.23 00:33, Nils Kattenbeck (nilskemail at gmail.com) wrote:
> >
> > > Hello, I am currently trying to build a linux image with discoverable
> > > partitions in an A/B+etc+var scheme.
> >
> > The discoverable partition scheme has no concept of /etc/ discovery. It
> > focusses on three basic setups:
> >
> > 1. writable root fs that contains /etc/, /var/ and /usr/ directly.
> > 2. writable root fs that contains /etc/ and /var/ and gets an
> >    immutable /usr/ mounted in
> > 3. immutable root fs that contains /etc/ and /usr/ directly and gets a
> >    writable /var/ mounted in. (the latter possibly as tmpfs, for truly
> >    stateless systems)
>
> There is also 4. with a writeable root which only contains /etc, an
> immutable /usr and a temporary /var. Though I guess that can be covered
> with the existing DPS...?

That's pretty much the same as 2, except that /var is overmounted with
a tmpfs. i.e. you would simply place /etc/fstab in there, that says
/var is tmpfs.

> > It was our assumption that these three cases should cover most
> > intended behaviours nicely, i.e. systems with modifiable config, code
> > and state. systems with modifiable config and state, but immutable
> > code. And finally systems with immutable config and code, but
> > modifiable state.
> >
> > A system where /etc/ was separate from the root fs is not covered by
> > the above, because it is not clear what that would get us. if you want
> > it immutable, why not stick it on an immutable root fs. And if you
> > want it writable, why not stick it on a writable root fs directly?
>
> My use case is basically 2, /etc has to be writeable to persist the
> machine-id across reboots, /var also has to be writeable and /usr can be
> immutable.
>
> The problem I am then likely facing is that I create the partitions wrong.
> I am using mkosi and tried several different repart.d configuration with
> type=root+type=usr, type=root+type=var+type=use, and different CopyFiles=
> and Exclude(Target)Files= but none of them seemed to have worked.

if your /var/ is supposed to be a tmpfs, then don't mention it to
mkosi/repart, just put an /etc/fstab into place that dicates /var is
mounted as tmpfs.

Other than that you should just be able to use Type=root and Type=usr then.

> Are there special requirements for what the respective partitions must or
> shall not contain when using several auto-discovered partitions? Or should
> I ask on the mkosi issue tracker?

If you have just root + usr then this should be a pretty common
situation for mkosi, it's not special and should just work.

Lennart

--
Lennart Poettering, Berlin


More information about the systemd-devel mailing list