2016-03-09Today I ran in some strange difficulties. After setting up my NFS server on Slackware I tried to mount the shared directory on my Slackware client, which worked flawlessly. Unfortunately, this was not the case on a different machine running ArchLinux. The /etc/exports file on my server looks like this:
After activating and enabling the needed rpc and nfs parts with systemctl on that Arch box, I tried to mount the shared directory the same way I did on Slack. But for some reason it took the Arch box about 20 seconds to mount the directory. On the server side, the following errors occured in dmesg:
[83130.174026] NFSD: Unable to create client record on stable storage: -110
After searching this error line on google, I couldn't find any real help. My question in #archlinux on IRC remained unanswered. After some fiddling around with different settings, I finally found the solution. It seems that ArchLinux tries to mount the remote nfs directory with nfsv4, but the Slackware server uses nfsv3. After adding vers=3 to the mount options in fstab it finally worked and the error disappeared. The fixed fstab line now looks like this:
SERVER:/mnt/hd /mnt nfs vers=3,user,noauto,rsize=8192,wsize=8192 0 0
Additionally, I couldn't find out where ArchLinux sets his default mount options for NFS volumes. When mounting without any options it sets many options by itself, which really annoys me. But at least it works now. It bugs me out though that even if I explicitly changed the filesystem type to nfs in fstab, it tries to use nfsv4 at first. That sucks. Hard. I guess all this is systemd-related, another reason to hate it.