aboutsummaryrefslogtreecommitdiff
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
guix-f94835a917cf78675eb597fecd222b6c6d1fb1ae.zip
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