[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
02/02: linux-boot: Don't ignore options when mounting root file system.
From: |
guix-commits |
Subject: |
02/02: linux-boot: Don't ignore options when mounting root file system. |
Date: |
Mon, 18 Nov 2019 06:20:12 -0500 (EST) |
civodul pushed a commit to branch master
in repository guix.
commit 900ef20b1da66ad71145082c883dc12f31fafa54
Author: Guillaume Le Vaillant <address@hidden>
Date: Sun Nov 17 14:15:21 2019 +0100
linux-boot: Don't ignore options when mounting root file system.
Fixes <https://bugs.gnu.org/37977>.
* gnu/build/linux-boot.scm (mount-root-file-system): Add the 'options'
keyword argument and use it when mounting the root file system.
(boot-system): Pass the root file system options to
'mount-root-file-system'.
Signed-off-by: Ludovic Courtès <address@hidden>
---
gnu/build/linux-boot.scm | 19 ++++++++++++++-----
1 file changed, 14 insertions(+), 5 deletions(-)
diff --git a/gnu/build/linux-boot.scm b/gnu/build/linux-boot.scm
index d902cc4..950a350 100644
--- a/gnu/build/linux-boot.scm
+++ b/gnu/build/linux-boot.scm
@@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès
<address@hidden>
;;; Copyright © 2017 Mathieu Othacehe <address@hidden>
+;;; Copyright © 2019 Guillaume Le Vaillant <address@hidden>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -357,15 +358,16 @@ the last argument of `mknod'."
(filter-map string->number (scandir "/proc")))))
(define* (mount-root-file-system root type
- #:key volatile-root?)
+ #:key volatile-root? options)
"Mount the root file system of type TYPE at device ROOT. If VOLATILE-ROOT?
is true, mount ROOT read-only and make it an overlay with a writable tmpfs
-using the kernel built-in overlayfs."
+using the kernel built-in overlayfs. OPTIONS indicates the options to use
+to mount ROOT."
(if volatile-root?
(begin
(mkdir-p "/real-root")
- (mount root "/real-root" type MS_RDONLY)
+ (mount root "/real-root" type MS_RDONLY options)
(mkdir-p "/rw-root")
(mount "none" "/rw-root" "tmpfs")
@@ -382,7 +384,7 @@ using the kernel built-in overlayfs."
"lowerdir=/real-root,upperdir=/rw-root/upper,workdir=/rw-root/work"))
(begin
(check-file-system root type)
- (mount root "/root" type)))
+ (mount root "/root" type 0 options)))
;; Make sure /root/etc/mtab is a symlink to /proc/self/mounts.
(false-if-exception
@@ -472,6 +474,12 @@ upon error."
mounts)
"ext4"))
+ (define root-fs-options
+ (any (lambda (fs)
+ (and (root-mount-point? fs)
+ (file-system-options fs)))
+ mounts))
+
(display "Welcome, this is GNU's early boot Guile.\n")
(display "Use '--repl' for an initrd REPL.\n\n")
@@ -524,7 +532,8 @@ upon error."
(else (file-system-label root)))))
(mount-root-file-system (canonicalize-device-spec root)
root-fs-type
- #:volatile-root? volatile-root?))
+ #:volatile-root? volatile-root?
+ #:options root-fs-options))
(mount "none" "/root" "tmpfs"))
;; Mount the specified file systems.