From f94835a917cf78675eb597fecd222b6c6d1fb1ae Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Fri, 31 Jul 2020 13:43:36 +0200 Subject: [PATCH] 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 --- gnu/system/file-systems.scm | 12 ++++++++++++ gnu/system/install.scm | 1 + 2 files changed, 13 insertions(+) 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 @@ (define-module (gnu system file-systems) %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 @@ (define %debug-file-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 @@ (define %base-file-systems (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 @@ (define installation-os ;; elogind's cgroup file systems. (list %pseudo-terminal-file-system %shared-memory-file-system + %efivars-file-system %immutable-store))) (users (list (user-account