AutoFS, NFS, and Arch Linux | key "-" not found in map source(s)
AutoFS, NFS, and Arch Linux | key “-” not found in map source(s)
Background
- I’ve always used
/etc/fstab
for auto-mounting things. When getting a new computer, I wanted to try something different (possibly because I always forget some step). Enter AutoFS. - There are 3 shares on my NAS which I access via NFS that I want to mount to 3 separate folders on my PC.
- This is written from the perspective of Arch Linux using Systemd.
- I could not, for the life of me, get this to work in the way that is documented using this or this. Hence this post.
Original Files
This is how they were when I was having issues with the error mentioned in the title:
# /etc/autofs/auto.master
/- /etc/autofs/auto.nas --timeout=30
+dir:/etc/autofs/auto.master.d #+auto.master
# /etc/autofs/auto.nas
share1 -rw,soft,intr,rsize=8192,wsize=8192,fstype=nfs4 NAS:/volume1/share1
share2 -rw,soft,intr,rsize=8192,wsize=8192,fstype=nfs4 NAS:/volume1/share2
share3 -rw,soft,intr,rsize=8192,wsize=8192,fstype=nfs4 NAS:/volume1/share3
Prerequisites
Install some packages and run the rpcbind
service
pacman -S --noconfirm nfs-utils rpcbind
systemctl enable rpcbind
systemctl start rpcbind && systemctl status rpcbind
Mounting
AutoFS reads from a master config file @/etc/autofs/auto.master
. Here is mine, minus default comments:
/- /etc/autofs/auto.nas --timeout=600
A sub-file called auto.nas
is where the information for my 3 specific mount-points are. You’re essentially using the master file to point to any sub-files which contain the information for the mount points
/etc/autofs/auto.nas
contains:
/mnt/NAS/share1 -rw,soft,intr,rsize=8192,wsize=8192,fstype=nfs4 NAS:/volume1/share1
/mnt/NAS/share2 -rw,soft,intr,rsize=8192,wsize=8192,fstype=nfs4 NAS:/volume1/share2
/mnt/NAS/share3 -rw,soft,intr,rsize=8192,wsize=8192,fstype=nfs4 NAS:/volume1/share3
Back to /etc/autofs/master.auto
, there are three fields. The problem I had with trying to get this to work was with the first field. According to the Arch Wiki on AutoFS:
Alternatively, you can have autofs mount your media to a specific folder, rather than inside a common folder.
The way I read it, the Arch Wiki was written to recommend the following way of configuring the file. Supposedly it should have automatically mounted the 3 shares dynamically under /mnt/NAS
, if in auto.nas
.
This is how I had originally written line 1 in auto.master
, written in the way that gave me problems
/mnt/NAS /etc/autofs/auto.nas --timeout=600
Which yields this error after restarting the AutoFS
service:
systemctl restart autofs && systemctl status autofs
Jun 18 17:17:24 host systemd[1]: Started Automounts filesystems on demand.
Jun 18 17:17:25 host automount[10571]: key "-" not found in map source(s).
The /-
as the first field in line 1 of auto.master
lets you explicitly set the absolute path for each of the three mount points as defined in auto.nas
file.
Having that value as the first field in the line that references the auto.nas
file is what resolved the error, and allowed me to access my NAS over NFS.