Subject: mount is unable to locate mount helpers

From: Tomáš Čech <[email-masked]>
Date: Sun, 27 Nov 2016 15:18:41 +0100

mount command from util-linux is expecting helpers in /sbin/
directory, which is not available on GuixSD.

If found it when I tried to mount manully NFS:

 # mount -t nfs server:/some/path /mnt

Manual page of `mount' - section EXTERNAL HELPERS and strace seems to agree:

...
stat("/sbin/mount.nfs", 0x7ffe421e9080) = -1 ENOENT (No such file or directory)
stat("/sbin/fs.d/mount.nfs", 0x7ffe421e9080) = -1 ENOENT (No such file or directory)
stat("/sbin/fs/mount.nfs", 0x7ffe421e9080) = -1 ENOENT (No such file or directory)
getuid()                                = 0
geteuid()                               = 0
getgid()                                = 0
getegid()                               = 0
prctl(PR_GET_DUMPABLE)                  = 1
getuid()                                = 0
geteuid()                               = 0
getgid()                                = 0
getegid()                               = 0
prctl(PR_GET_DUMPABLE)                  = 1
stat("/run", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/etc/mtab", {st_mode=S_IFLNK|0777, st_size=17, ...}) = 0
lstat("/run/mount/utab", {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
open("/run/mount/utab", O_RDWR|O_CREAT|O_CLOEXEC, 0644) = 3
close(3)                                = 0
mount("disk:/", "/mnt", "nfs", MS_MGC_VAL, NULL) = -1 EINVAL (Invalid argument)
write(2, "mount: ", 7mount: )                  = 7
write(2, "wrong fs type, bad option, bad s"..., 110wrong fs type, bad option, bad superblock on disk:/,
       missing codepage or helper program, or other error) = 110
write(2, "\n", 1
)                       = 1
write(2, "       (for several filesystems "..., 108       (for several filesystems (e.g. nfs, cifs) you might
       need a /sbin/mount.<type> helper program)
) = 108
write(2, "\n       In some cases useful inf"..., 86
       In some cases useful info is found in syslog - try
       dmesg | tail or so.
) = 86
close(1)                                = 0
close(2)                                = 0
exit_group(32)                          = ?
+++ exited with 32 +++

The best approach to me seems to patch mount so it search PATH or
introduce some other environment variable to search helpers in.