From 169cbd808aa712a355173609fe309ef1b83140fa Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 20 May 2021 20:45:00 +0200 Subject: gnu: Respect the root file-system's CHECK? field. * gnu/build/linux-boot.scm (mount-root-file-system): Take a new #:CHECK? keyword argument. Add it to the docstring. Conditionally call CHECK-FILE-SYSTEM. (boot-system): Adjust its only caller to pass the 's CHECK? option through, if available. --- gnu/build/linux-boot.scm | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'gnu') diff --git a/gnu/build/linux-boot.scm b/gnu/build/linux-boot.scm index f20eeaac9f..7d1b3ee835 100644 --- a/gnu/build/linux-boot.scm +++ b/gnu/build/linux-boot.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès -;;; Copyright © 2016, 2017, 2019, 2020 Tobias Geerinckx-Rice +;;; Copyright © 2016, 2017, 2019–2021 Tobias Geerinckx-Rice ;;; Copyright © 2017 Mathieu Othacehe ;;; Copyright © 2019 Guillaume Le Vaillant ;;; @@ -411,11 +411,13 @@ the last argument of `mknod'." (filter-map string->number (scandir "/proc"))))) (define* (mount-root-file-system root type - #:key volatile-root? (flags 0) options) + #:key volatile-root? (flags 0) options + check?) "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. FLAGS and OPTIONS indicates the options to use -to mount ROOT, and behave the same as for the `mount' procedure." +to mount ROOT, and behave the same as for the `mount' procedure. +If CHECK? is true, first run ROOT's fsck tool (if any) non-interactively." (if volatile-root? (begin @@ -436,7 +438,8 @@ to mount ROOT, and behave the same as for the `mount' procedure." (mount "none" "/root" "overlay" 0 "lowerdir=/real-root,upperdir=/rw-root/upper,workdir=/rw-root/work")) (begin - (check-file-system root type) + (when check? + (check-file-system root type)) (mount root "/root" type flags options))) ;; Make sure /root/etc/mtab is a symlink to /proc/self/mounts. @@ -600,7 +603,10 @@ upon error." root-fs-type #:volatile-root? volatile-root? #:flags root-fs-flags - #:options root-options) + #:options root-options + #:check? (if root-fs + (file-system-check? root-fs) + #t)) (mount "none" "/root" "tmpfs")) ;; Mount the specified file systems. -- cgit v1.2.3