* Remounting tmpfs @ 2019-04-07 19:33 7e9wc56emjakcm 2019-04-09 14:58 ` Ludovic Courtès 0 siblings, 1 reply; 6+ messages in thread From: 7e9wc56emjakcm @ 2019-04-07 19:33 UTC (permalink / raw) To: help-guix 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. ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Remounting tmpfs 2019-04-07 19:33 Remounting tmpfs 7e9wc56emjakcm @ 2019-04-09 14:58 ` Ludovic Courtès 2019-04-09 15:24 ` 7e9wc56emjakcm 0 siblings, 1 reply; 6+ messages in thread From: Ludovic Courtès @ 2019-04-09 14:58 UTC (permalink / raw) To: 7e9wc56emjakcm; +Cc: help-guix Hello, 7e9wc56emjakcm@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. Now, you could try to add a file system declaration that mounts /etc, with (needed-for-boot? #t). HTH, Ludo’. ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Remounting tmpfs 2019-04-09 14:58 ` Ludovic Courtès @ 2019-04-09 15:24 ` 7e9wc56emjakcm 2019-04-16 19:11 ` rendaw 2019-04-17 20:31 ` Ludovic Courtès 0 siblings, 2 replies; 6+ messages in thread From: 7e9wc56emjakcm @ 2019-04-09 15:24 UTC (permalink / raw) To: Ludovic Courtès; +Cc: help-guix On 4/9/19 11:58 PM, Ludovic Courtès wrote: > Hello, > > 7e9wc56emjakcm@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. > 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. Thanks for the suggestions! ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Remounting tmpfs 2019-04-09 15:24 ` 7e9wc56emjakcm @ 2019-04-16 19:11 ` rendaw 2019-04-17 20:31 ` Ludovic Courtès 1 sibling, 0 replies; 6+ messages in thread From: rendaw @ 2019-04-16 19:11 UTC (permalink / raw) To: Ludovic Courtès; +Cc: help-guix On 4/10/19 12:24 AM, 7e9wc56emjakcm@s.rendaw.me wrote: > On 4/9/19 11:58 PM, Ludovic Courtès wrote: >> Hello, >> >> 7e9wc56emjakcm@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. > >> 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. > > Thanks for the suggestions! > So I think the short answer I was looking for is that 1. guix already does something like this - it mounts root read only and overlays a tempfs on top (it's still writable though somehow) 2. guix has a complicated mounting process that isn't amenable to changes like this Since my question about disk-image gets into the root filesystem tree I'll move this discussion there entirely. ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Remounting tmpfs 2019-04-09 15:24 ` 7e9wc56emjakcm 2019-04-16 19:11 ` rendaw @ 2019-04-17 20:31 ` Ludovic Courtès 2019-04-17 20:50 ` rendaw 1 sibling, 1 reply; 6+ messages in thread From: Ludovic Courtès @ 2019-04-17 20:31 UTC (permalink / raw) To: 7e9wc56emjakcm; +Cc: help-guix Hi, 7e9wc56emjakcm@s.rendaw.me skribis: > On 4/9/19 11:58 PM, Ludovic Courtès wrote: >> Hello, >> >> 7e9wc56emjakcm@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’. ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Remounting tmpfs 2019-04-17 20:31 ` Ludovic Courtès @ 2019-04-17 20:50 ` rendaw 0 siblings, 0 replies; 6+ messages in thread From: rendaw @ 2019-04-17 20:50 UTC (permalink / raw) To: Ludovic Courtès; +Cc: help-guix On 4/18/19 5:31 AM, Ludovic Courtès wrote: > Hi, > > 7e9wc56emjakcm@s.rendaw.me skribis: > >> On 4/9/19 11:58 PM, Ludovic Courtès wrote: >>> Hello, >>> >>> 7e9wc56emjakcm@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’. Thanks, yeah, that sounds exactly like what I want! TBH I think something's going on strange with my threads, perhaps because I messed up the replies -- after much source reading I found volatile-root and asked about it in my disk-image thread. TBH I'm not clear how that would be set in the config to use with disk-image to get a whole system. ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2019-04-17 20:50 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2019-04-07 19:33 Remounting tmpfs 7e9wc56emjakcm 2019-04-09 14:58 ` Ludovic Courtès 2019-04-09 15:24 ` 7e9wc56emjakcm 2019-04-16 19:11 ` rendaw 2019-04-17 20:31 ` Ludovic Courtès 2019-04-17 20:50 ` rendaw
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).