diff options
author | Hilton Chain <hako@ultrarare.space> | 2024-09-26 15:05:28 +0800 |
---|---|---|
committer | Maxim Cournoyer <maxim.cournoyer@gmail.com> | 2025-03-05 14:23:42 +0900 |
commit | e88018be70ffb8ea35819a4c95d44ec20868ca59 (patch) | |
tree | 40dfd628aed9cc8bf0548de3c8e91af8ed799e38 | |
parent | c695de0d04f16c2f21d2386823b3c2a3ad2f7517 (diff) |
file-systems: %base-file-systems: Add tmpfs /run.
* gnu/system/file-systems (%runtime-variable-data): New variable.
(%base-file-systems): Add it.
* doc/guix.texi (File Systems): Document it.
* gnu/services.scm (cleanup-gexp): Adjust accordingly.
Change-Id: I3a95e49d396fbb2577026aefc247cfe996c5f267
Modified-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
-rw-r--r-- | doc/guix.texi | 5 | ||||
-rw-r--r-- | gnu/services.scm | 5 | ||||
-rw-r--r-- | gnu/system/file-systems.scm | 15 |
3 files changed, 20 insertions, 5 deletions
diff --git a/doc/guix.texi b/doc/guix.texi index 78bc4ae02a..811310fa95 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -18228,6 +18228,11 @@ The daemon itself is still able to write to the store: it remounts it read-write in its own ``name space.'' @end defvar +@defvar %runtime-variable-data +This file system is mounted as @file{/run} and contains system +information data describing the system since it was booted. +@end defvar + @defvar %binary-format-file-system The @code{binfmt_misc} file system, which allows handling of arbitrary executable file types to be delegated to user space. This requires the diff --git a/gnu/services.scm b/gnu/services.scm index 8a4002e072..ea855ad193 100644 --- a/gnu/services.scm +++ b/gnu/services.scm @@ -632,7 +632,7 @@ information is missing, return the empty list (for channels) and possibly #~(begin (use-modules (guix build utils)) - ;; Clean out /tmp, /var/run, and /run. + ;; Clean out /tmp and /var/run. ;; ;; XXX This needs to happen before service activations, so it ;; has to be here, but this also implicitly assumes that /tmp @@ -663,15 +663,12 @@ information is missing, return the empty list (for channels) and possibly (setlocale LC_CTYPE "en_US.utf8") (delete-file-recursively "/tmp") (delete-file-recursively "/var/run") - (delete-file-recursively "/run") ;; Note: The second argument to 'mkdir' is and'ed with umask, ;; hence the 'chmod' calls. (mkdir "/tmp" #o1777) (chmod "/tmp" #o1777) (mkdir "/var/run" #o755) - (chmod "/var/run" #o755) - (mkdir "/run" #o755) (chmod "/var/run" #o755)))))) (define cleanup-service-type diff --git a/gnu/system/file-systems.scm b/gnu/system/file-systems.scm index 4ea8237c70..8c3898c9bf 100644 --- a/gnu/system/file-systems.scm +++ b/gnu/system/file-systems.scm @@ -82,6 +82,7 @@ %pseudo-terminal-file-system %tty-gid %immutable-store + %runtime-variable-data %control-groups %elogind-file-systems @@ -448,6 +449,17 @@ TARGET in the other system." (check? #f) (flags '(read-only bind-mount no-atime)))) +(define %runtime-variable-data + (file-system + (type "tmpfs") + (mount-point "/run") + (device "tmpfs") + (flags '(no-suid no-dev strict-atime)) + (options "mode=0755,nr_inodes=800k,size=20%") + (needed-for-boot? #t) + (check? #f) + (create-mount-point? #t))) + (define %control-groups ;; The cgroup2 file system. (list (file-system @@ -497,7 +509,8 @@ TARGET in the other system." %debug-file-system %shared-memory-file-system %efivars-file-system - %immutable-store)) + %immutable-store + %runtime-variable-data)) (define %base-live-file-systems ;; This is the bare minimum to use live file-systems. |