summary refs log tree commit diff
path: root/gnu/system.scm
diff options
context:
space:
mode:
authorNicolas Graves <ngraves@ngraves.fr>2024-02-04 03:19:56 +0100
committerLudovic Courtès <ludo@gnu.org>2024-02-19 18:42:56 +0100
commit3378c1a9c65a9eb8ef13d7d738473e435cbbe3b6 (patch)
tree3930292d41d4d291f8aa5181a63d1523758f12aa /gnu/system.scm
parent27ee6f06d0ecab58ca3b739c911bacefda440177 (diff)
downloadguix-3378c1a9c65a9eb8ef13d7d738473e435cbbe3b6.tar.gz
system: Omit “root=” kernel argument when root device is “none”.
* gnu/system.scm (bootable-kernel-arguments): Fallback to tmpfs
if root is "none".

Change-Id: I35a656e71169dc786e5256d98a3c04c65043086d
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Diffstat (limited to 'gnu/system.scm')
-rw-r--r--gnu/system.scm22
1 files changed, 13 insertions, 9 deletions
diff --git a/gnu/system.scm b/gnu/system.scm
index 3cd64a5c9f..aede35775e 100644
--- a/gnu/system.scm
+++ b/gnu/system.scm
@@ -15,6 +15,7 @@
 ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
 ;;; Copyright © 2021 raid5atemyhomework <raid5atemyhomework@protonmail.com>
 ;;; Copyright © 2023 Bruno Victal <mirai@makinata.eu>
+;;; Copyright © 2024 Nicolas Graves <ngraves@ngraves.fr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -197,15 +198,18 @@ VERSION is the target version of the boot-parameters record."
   ;; compatibility when producing bootloader configurations for older
   ;; generations.
   (define version>0? (> version 0))
-  (list (string-append (if version>0? "root=" "--root=")
-                       ;; Note: Always use the DCE format because that's what
-                       ;; (gnu build linux-boot) expects for the 'root'
-                       ;; kernel command-line option.
-                       (file-system-device->string root-device
-                                                   #:uuid-type 'dce))
-        #~(string-append (if #$version>0? "gnu.system=" "--system=") #$system)
-        #~(string-append (if #$version>0? "gnu.load=" "--load=")
-                         #$system "/boot")))
+  (let ((root (file-system-device->string root-device
+                                          #:uuid-type 'dce)))
+    (append
+     (if (string=? root "none")
+         '() ;  Ignore the case where the root is "none" (typically tmpfs).
+         ;; Note: Always use the DCE format because that's what
+         ;; (gnu build linux-boot) expects for the 'root'
+         ;; kernel command-line option.
+         (list (string-append (if version>0? "root=" "--root=") root)))
+     (list #~(string-append (if #$version>0? "gnu.system=" "--system=") #$system)
+           #~(string-append (if #$version>0? "gnu.load=" "--load=")
+                            #$system "/boot")))))
 
 ;; System-wide configuration.