summary refs log tree commit diff
diff options
context:
space:
mode:
authorMathieu Othacehe <othacehe@gnu.org>2020-07-31 13:43:36 +0200
committerMathieu Othacehe <othacehe@gnu.org>2020-07-31 13:43:36 +0200
commitf94835a917cf78675eb597fecd222b6c6d1fb1ae (patch)
treeb08b5d0acff8ff09071b827a17b436669ef9520c
parent7c27bd115b14afd142da7684cc349369965f9eab (diff)
downloadguix-f94835a917cf78675eb597fecd222b6c6d1fb1ae.tar.gz
file-system: Add efivarfs support.
Tools such as efibootmgr rely on the deprecated /sys/firmware/efi/vars API as
well as on the new /sys/firmware/efi/efivars API. The latter needs to be
mounted.

Reported by Keyhenge here:
https://lists.gnu.org/archive/html/bug-guix/2020-04/msg00274.html

Here is the efivarfs documentation:
https://www.kernel.org/doc/Documentation/filesystems/efivarfs.txt.

* gnu/system/file-systems.scm (%efivars-file-system): New exported variable,
(%base-file-systems): add it.
* gnu/system/install.scm (%efivars-file-system): Add it.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
-rw-r--r--gnu/system/file-systems.scm12
-rw-r--r--gnu/system/install.scm1
2 files changed, 13 insertions, 0 deletions
diff --git a/gnu/system/file-systems.scm b/gnu/system/file-systems.scm
index 9c5cbc9b4e..a62cf902bf 100644
--- a/gnu/system/file-systems.scm
+++ b/gnu/system/file-systems.scm
@@ -70,6 +70,7 @@
             %fuse-control-file-system
             %binary-format-file-system
             %debug-file-system
+            %efivars-file-system
             %shared-memory-file-system
             %pseudo-terminal-file-system
             %tty-gid
@@ -382,6 +383,16 @@ TARGET in the other system."
     (check? #f)
     (create-mount-point? #t)))
 
+(define %efivars-file-system
+  ;; Support for EFI variables file system.
+  (file-system
+    (device "efivarfs")
+    (mount-point "/sys/firmware/efi/efivars")
+    (type "efivarfs")
+    (mount-may-fail? #t)
+    (needed-for-boot? #f)
+    (check? #f)))
+
 (define %tty-gid
   ;; ID of the 'tty' group.  Allocate it statically to make it easy to refer
   ;; to it from here and from the 'tty' group definitions.
@@ -483,6 +494,7 @@ TARGET in the other system."
   (list %pseudo-terminal-file-system
         %debug-file-system
         %shared-memory-file-system
+        %efivars-file-system
         %immutable-store))
 
 ;; File systems for Linux containers differ from %base-file-systems in that
diff --git a/gnu/system/install.scm b/gnu/system/install.scm
index d0ff2e7c52..a87c2f4207 100644
--- a/gnu/system/install.scm
+++ b/gnu/system/install.scm
@@ -497,6 +497,7 @@ Access documentation at any time by pressing Alt-F2.\x1b[0m
             ;; elogind's cgroup file systems.
             (list %pseudo-terminal-file-system
                   %shared-memory-file-system
+                  %efivars-file-system
                   %immutable-store)))
 
     (users (list (user-account