Hi,

Best example I could find was under guix/tests/system.scm, on how maybe
the service is used. Unsure.

>  ;; Make sure that mapped devices with at least one needed-for-boot user are
>  ;; handled exclusively from the initrd.  See <https://bugs.gnu.org/31889>.
>  (append-map file-system-dependencies
>              (service-value
>               ((@@ (gnu system) non-boot-file-system-service)
>                (operating-system
>                  (inherit %os-with-mapped-device)
>                  (file-systems
>                   (list (file-system
>                           (mount-point "/foo/bar")
>                           (device "qux:baz")
>                           (type "none")
>                           (dependencies (list %luks-device)))
>                         (file-system
>                           (device (file-system-label "my-root"))
>                           (mount-point "/")
>                           (type "ext4")
>                           (dependencies (list %luks-device))))))))))

It seems that 'non-boot-file-system-service' differs from
'boot-file-system-service' with the variable 'file-system-needed-for-boot?'

> (define (non-boot-file-system-service os)
>   "Return the file system service for the file systems of OS that are not
> marked as 'needed-for-boot'."
>   (define file-systems
>     (remove file-system-needed-for-boot?
>             (operating-system-file-systems os)))

Looking at the 'file-system' definition, it seems that you could try
changing 'mount-may-fail?' to #t. It may or may not help.

> (define-record-type* <file-system> file-system
>   make-file-system
>   file-system?
>   (device                file-system-device)               ; string | <uuid> 
> | <file-system-label>
>   (mount-point           file-system-mount-point)          ; string
>   (type                  file-system-type)                 ; string
>   (flags                 file-system-flags                 ; list of symbols
>                          (default '())
>                          (sanitize validate-file-system-flags))
>   (options               file-system-options               ; string or #f
>                          (default #f))
>   (mount?                file-system-mount?                ; Boolean
>                          (default #t))
>   (mount-may-fail?       file-system-mount-may-fail?       ; Boolean
>                          (default #f))
>   (needed-for-boot?      %file-system-needed-for-boot?     ; Boolean
>                          (default #f))
>   (check?                file-system-check?                ; Boolean
>                          (default #t))
>   (skip-check-if-clean?  file-system-skip-check-if-clean?  ; Boolean
>                          (default #t))
>   (repair                file-system-repair                ; symbol or #f
>                          (default 'preen))
>   (create-mount-point?   file-system-create-mount-point?   ; Boolean
>                          (default #f))
>   (dependencies          file-system-dependencies          ; list of 
> <file-system>
>                          (default '()))                    ; or 
> <mapped-device>
>   (shepherd-requirements file-system-shepherd-requirements ; list of symbols
>                          (default '()))
>   (location              file-system-location
>                          (default (current-source-location))
>                          (innate)))

Hope any of these findings might help.
Also a lot of great info could be found on guix-cookbook.
https://guix.gnu.org/en/cookbook/en/guix-cookbook.html
Sometimes I find reading the source code directly is actually much
clearer than the manual.

-- 
Best Regards,
Ignas Lapėnas

Reply via email to