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".
This commit is contained in:
Ludovic Courtès 2014-07-21 21:07:00 +02:00
parent 02dd2a9cb6
commit 1b09031f78

View file

@ -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))