Hi, 7e9wc56emja...@s.rendaw.me skribis:
> On 4/9/19 11:58 PM, Ludovic Courtès wrote: >> Hello, >> >> 7e9wc56emja...@s.rendaw.me skribis: >> >>> On a system I'm porting to guix I have 2GB tmpfs with subdirectories >>> like /tmpfs/etc that I remount to /etc with an overlay filesystem. >>> >>> The current way I do this in systemd is making a service dependency >>> between the /tmpfs and /etc mounts that mkdirs /tmpfs/etc and >>> /tmpfs/etc_work, but AFAICT filesystem definitions in guix can only have >>> filesystem dependencies. >>> >>> Are there any other ways I can do this without copying/pasting/modifying >>> gobs of core guix code into my system definition? Like somehow >>> appending (mkdir /tmpfs/etc) onto the tmpfs filesystem service start >>> procedure or something. >> In Guix /etc is mostly populated by “activation programs”, which are >> generated from your config. So I’m not sure what you describe would >> make much sense. > > So if /etc can be read-only and boot I'm probably fine... my experience > with other distros was that some other processes needed to write to it. > Ex: modifying resolv.conf. /etc is writable because of things like ‘resolv.conf’. /etc consists mostly of immutable files derived directly from your OS config (/etc/passwd, /etc/hosts, /etc/polkit-1, /etc/pam.d, etc.), along with files that contains bits of state (/etc/shadow, /etc/resolv.conf.) The former are directly managed by Guix, while the latter are either left as is or touched with care by Guix (/etc/shadow in particular.) >> Now, you could try to add a file system declaration that mounts /etc, >> with (needed-for-boot? #t). > > My goal is to have a read-only / mount with the ability for programs to > make temporary modifications for operational purposes when necessary, in > limited scopes (like /etc). Can you elaborate on what you're suggesting > here? Mounting something other than the overlayfs on /etc would hide > the system config files. I might be able to use another mount to create > a pseudo- /tmpfs/etc_work subdirectory but it sounds kind of wormy and > overlayfs requires the upper dir and workdir to be the same filesystem > which I think precludes doing any mounting for those subdirectories. The overlay makes a lot of sense. This is what ‘guix system vm’ does: see the #:volatile-root? parameter of ‘raw-initrd’. Perhaps you could simply set #:volatile-root? #t in your initrd to obtain what you want? Thanks, Ludo’.