[bug#78426] system: Set "rootfstype" for tmpfs root file system.

Message ID bafdc9d219ab6efa933bf17c64e68e16dfae4593.1747235058.git.hako@ultrarare.space
State New
Headers
Series [bug#78426] system: Set "rootfstype" for tmpfs root file system. |

Commit Message

Hilton Chain May 14, 2025, 3:09 p.m. UTC
  This commit adds configuration for tmpfs root file system.  Since there's no
file system information in boot parameters, not all tmpfs cases are handled.

* gnu/system.scm (bootable-kernel-arguments): Check root file system for tmpfs
and set "rootfstype".

Change-Id: Ib14f6a9e4040535b3412ca9efa7e9b65c1dc8b39
---
 gnu/system.scm | 21 +++++++++++++++------
 1 file changed, 15 insertions(+), 6 deletions(-)


base-commit: c9d655330d817a0ea30190468cbb6772db1311b5
prerequisite-patch-id: 525b29878f7a0b247b7b3dd0e45fb85dd8f3cf46
prerequisite-patch-id: 2579801cc89f3e3e022074a0425fba3d38bbe1de
prerequisite-patch-id: 7174912f7b05011468bc47b2ba8167b0e617a70b
prerequisite-patch-id: 08fa38ca1e61c773052671339b78799f19fb7f60
prerequisite-patch-id: b68df6ad7528101d3fbb1fd44f94472a9c8f4f0a
prerequisite-patch-id: 58297e005e4ad0988bd5dc73cd0149637d5c7032
prerequisite-patch-id: 2c09773480fbfd323433986ec528fcb8019273f9
prerequisite-patch-id: e2846320c8b391ff3fec09e51c31578ee6057268
prerequisite-patch-id: 538047ea2f029dd135319c02ba569c4aab9af38d
prerequisite-patch-id: 4fb73799b5ea902d69ecf15b72e1fecc9903d0bc
prerequisite-patch-id: a3a0146e6686bf6f7804192e1a383239c118717b
prerequisite-patch-id: 8de6616d86785be0088bc210202d375b6d0cf5eb
prerequisite-patch-id: 2f32dcab8b97a4fd210ab5b29b6ebf327861be36
prerequisite-patch-id: 081be41a50854a1397ad6574d995ba444b927a7f
prerequisite-patch-id: 26f0f74eb23d56cecf3f93d3dc1d8e5d5a8578cf
prerequisite-patch-id: f5f99443a9db01b814a978b1c65c5826586c44eb
prerequisite-patch-id: d9fe717dac14cfdfbf9db0a76b1e0696806d296b
prerequisite-patch-id: d92034f568f9084b3c61b2944d4070b82ba74e37
prerequisite-patch-id: f3cb877e57cb93ae13156aaa0c4408fff8e0334f
prerequisite-patch-id: f5a98ba554d79478659d7e776b48fbe775c0a237
prerequisite-patch-id: 7288c81563bcf2efc5044320eb4c7bd32aa0bc1b
--
2.49.0
  

Patch

diff --git a/gnu/system.scm b/gnu/system.scm
index 68478790b1e..3cd5408c09c 100644
--- a/gnu/system.scm
+++ b/gnu/system.scm
@@ -208,12 +208,21 @@  (define* (bootable-kernel-arguments system root-device version)
   (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)))
+     (cond
+      ((string=? root "tmpfs")
+       ;; Required when using tmpfs as root file system.
+       ;; TODO: Include file system information in boot parameters, so that we
+       ;; can detect tmpfs by file system type instead of device name here.
+       '("rootfstype=tmpfs"))
+      ((string=? root "none")
+       ;; Ignore unhandled cases where the root is "none".  This requires the
+       ;; user to set correct arguments.
+      '())
+      (else
+       ;; 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")))))