From 1b09031f786238b21ab10ba4c3e384ab194735df Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= <ludo@gnu.org>
Date: Mon, 21 Jul 2014 21:07:00 +0200
Subject: [PATCH] services: Allow 'check-file-system' to work for non-boot-time
 file systems.

* gnu/services/base.scm (file-system-service)[start]: Set $PATH so that
  fsck.* can be found.  Reported by "DusXMT".
---
 gnu/services/base.scm | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index 55ee5c4b084..ae12c8e93d5 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -25,7 +25,7 @@ (define-module (gnu services base)
   #:use-module (gnu system linux)                 ; 'pam-service', etc.
   #:use-module (gnu packages admin)
   #:use-module ((gnu packages linux)
-                #:select (udev kbd))
+                #:select (udev kbd e2fsprogs))
   #:use-module ((gnu packages base)
                 #:select (glibc-final))
   #:use-module (gnu packages package-management)
@@ -110,7 +110,14 @@ (define* (file-system-service device target type
       (start #~(lambda args
                  (let ((device (canonicalize-device-spec #$device '#$title)))
                    #$(if check?
-                         #~(check-file-system device #$type)
+                         #~(begin
+                             ;; Make sure fsck.ext2 & co. can be found.
+                             (setenv "PATH"
+                                     (string-append
+                                      #$e2fsprogs "/sbin:"
+                                      "/run/current-system/profile/sbin:"
+                                      (getenv "PATH")))
+                             (check-file-system device #$type))
                          #~#t)
                    (mount device #$target #$type 0 #$options))
                  #t))
-- 
GitLab