gnu: system: Fix computation of boot parameters for LUKS devices.
authorAndy Wingo <wingo@igalia.com>
Wed, 20 Sep 2017 13:11:41 +0000 (15:11 +0200)
committerAndy Wingo <wingo@igalia.com>
Wed, 20 Sep 2017 13:40:32 +0000 (15:40 +0200)
* gnu/system.scm (read-boot-parameters): Fix store-device computation for root
devices of type "device", like the LUKS partition described in the manual.
From a patch from https://debbugs.gnu.org/cgi/bugreport.cgi?bug=28445#23.

Signed-off-by: Andy Wingo <wingo@igalia.com>
gnu/system.scm

index 88b5346..b6c087a 100644 (file)
@@ -278,6 +278,8 @@ directly by the user."
 
       (store-device
        (match (assq 'store rest)
+         (('store ('device #f) _ ...)
+          root-device)
          (('store ('device device) _ ...)
           (device-sexp->device device))
          (_                                       ;the old format
@@ -909,8 +911,7 @@ listed in OS.  The C library expects to find it under
   "Given FS, a <file-system> object, return a value suitable for use as the
 device in a <menu-entry>."
   (case (file-system-title fs)
-    ((uuid) (file-system-device fs))
-    ((label) (file-system-device fs))
+    ((uuid label device) (file-system-device fs))
     (else #f)))
 
 (define (operating-system-boot-parameters os system.drv root-device)