Subject: bug#25917: [PATCH] services: Don't check filesystem even if #:check? if not #:needed-for-boot.

From: [email-masked] (Ludovic Courtès)
Date: Mon, 13 Mar 2017 10:01:32 +0100

Danny Milosavljevic <[email-masked]> skribis:

> * gnu/services/base.scm (file-system-shepherd-service): If
> not #:needed-for-boot, don't check filesystem even if #:check? .
> ---
>  gnu/services/base.scm | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/gnu/services/base.scm b/gnu/services/base.scm
> index 5298a11f6..2628b718f 100644
> --- a/gnu/services/base.scm
> +++ b/gnu/services/base.scm
> @@ -274,6 +274,7 @@ FILE-SYSTEM."
>          (options (file-system-options file-system))
>          (check?  (file-system-check? file-system))
>          (create? (file-system-create-mount-point? file-system))
> +        (needed-for-boot? (file-system-needed-for-boot? file-system))
>          (dependencies (file-system-dependencies file-system)))
>      (and (file-system-mount? file-system)
>           (with-imported-modules '((gnu build file-systems)
> @@ -300,7 +301,7 @@ FILE-SYSTEM."
>                             (lambda ()
>                               (mount-file-system
>                                `(#$device #$title #$target #$type #$flags
> -                                         #$options #$check?)
> +                                         #$options #$(and check? needed-for-boot?))
>                                #:root "/"))
>                             (lambda ()
>                               (setenv "PATH" $PATH)))

One thing I don’t get is that, if the file system is not
needed-for-boot?, then it doesn’t get a Shepherd service in the first
place.

In your original message, you wrote that the problem is that “the initrd
doesn't contain the fsck tool”, so it’s a problem in linux-initrd.scm,
no?

What am I missing?

Ludo’.