8

I am trying to get a basic nfs4 working between two machines (let's call them server and client). I have followed this manual by letter to no avail. Here's what I'm getting:

root@server#: tail -n 2 /etc/exports
/export client-ip/24(rw,nohide,insecure,no_subtree_check,async,no_root_squash)
/export/users client-ip/24(rw,nohide,insecure,no_subtree_check,async,no_root_squash)

root@server#: showmount --exports
Export list for server-ip:
/export/users client-ip/24
/export       client-ip/24

Server side seems to be OK. Directories exist, their permissions are granted (775). Addresses (client-ip and server-ip) are numeric - replaced with acronyms here for obvious reasons. Next, the client:

root@client#: mount -v -t nfs4 server-ip:/export /opt/nfstest
mount.nfs4: timeout set for Thu Apr 14 15:52:31 2011
mount.nfs4: text-based options: 'clientaddr=client-ip,addr=server-ip'
mount.nsf4: mount(2): No such file or directory
mount.nfs4: mounting server-ip:/export failed, reason given by server:
   No such file or directory

It just doesn't accept the remote folder. Apart from one above, I tried server-ip:/export/users, server-ip:/ - getting same result. Client does have access to server:

root@client#: telnet server-ip 2049
Trying server-ip...
Connected to server-ip.
Escape character is '^]'.

root@client#: showmount -e server-ip
Export list for server-ip:
/export/users client-ip/24
/export       client-ip/24

Local directory /opt/nfstest exists. Module nfs is loaded on the nfs client. There are no firewall between the server and client. What else should I check?

Additional information: Ubuntu Lucid (10.04.2), running on Amazon ec2 box. NFS versions (nfs-common, nfs-kernel-server) are 1:1.2.0-4ubuntu4.1.

2
  • What happens if you get rid of the explicit type in your mount line (mount -v server-ip:/export /opt/nfstest)?
    – jwernerny
    Apr 15, 2011 at 14:37
  • It was hanging and eventually timing out, IIRC. Can't check this right now as I have modified the server side's /etc/default/nfs-common to have NEED_IDMAPD=no from =yes (which probably downgraded nfs to v3). Can't change this back right now as the share is in active use - needed to get things working.
    – mindas
    Apr 15, 2011 at 14:48

2 Answers 2

19

The value 0 has a special meaning when use with NFSv4. NFSv4 has a concept of a root of the overall exported filesystem. The export point exported with fsid=0 will be used as this root.

Therefore include fsid=0 into /etc/exports and then do the following:

mount -t nfs4 <serverip>:/ /localmount/point

and not

mount -t nfs4 <serverip>:/exports /localmount/point

That's it.

4
  • Does this work for anyone? It still gives the same error for me.
    – puk
    Nov 15, 2013 at 9:14
  • It worked for me. I looked through all fancy stuff for hours, Thanks @Divan Santana.
    – Lord Loh.
    Apr 12, 2015 at 19:12
  • Wow. I spent a whole day to finally come to this wonderful answer May 17, 2016 at 22:43
  • If you have serverr:/x/y/z and with fsids 1/2/3 make sure you have an acl for each of 0/1/2/3 that allow your client. Allowing just 0 or just 3 or just 0 and 3 isn't sufficient. Aug 18, 2022 at 18:40
1

My experiences are that NFSv4 is case sensitive, so when I was forced to switch from nfsv3 to nfsv4 (client linux, server wintel) I had to correct path exported from server

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .