mount.nfs: access denied by server while mounting on Ubuntu machines?
Solution 1
exportfs
When you create a /etc/exports
file on a server you need to make sure that you export it. Typically you'll want to run this command:
$ exportfs -a
This will export all the entries in the exports file.
showmount
The other thing I'll often do is from other machines I'll check any machine that's exporting NFS shares to the network using the showmount
command.
$ showmount -e <NFS server name>
Example
Say for example I'm logged into scully.
$ showmount -e mulder
Export list for mulder:
/export/raid1/isos 192.168.1.0/24
/export/raid1/proj 192.168.1.0/24
/export/raid1/data 192.168.1.0/24
/export/raid1/home 192.168.1.0/24
/export/raid1/packages 192.168.1.0/24
fstab
To mount these upon boots you'd add this line to your client machines that want to consume the NFS mounts.
server:/shared/dir /opt/mounted/dir nfs rsize=8192,wsize=8192,timeo=14,intr
automounting
If you're going to be rebooting these servers then I highly suggest you look into setting up automounting (autofs
) instead of adding these entries to /etc/fstab
. It's a bit more work but is well worth the effort.
Doing so will allow you to reboot the servers more independently from one another and also will only create the NFS mount when it's actually needed and/or being used. When it goes idle it will get unmounted.
References
Solution 2
I saw the same error (mount.nfs: access denied by server while mounting...
) and the issue was fixed by -o v3
option as follows:
$ sudo mount -o v3 a-nfs-server:/path/to/export /path/to/mount
- Server is Ubuntu 14.04 64bit LTS.
- Client is CentOS 6.5 64bit.
Solution 3
I was getting the same error message and my issue turned out to be due to the client machine having two network interfaces connected to the same LAN. The server had been configured to expect a specific IP address and traffic was going out on the second interface that has a dhcp IP address. So I just configured the second interface to have a static IP address and also added the second static IP address to the server configuration.
Solution 4
In my case works using nfs4 doing:
$ sudo mount -t nfs4 server-name:/ /path/to/mount
In the /etc/export
file on server
/Path/to/export 192.168.1.0/24(rw,sync,fsid=0,no_root_squash,crossmnt,no_subtree_check,no_acl)
fsid=0
makes the /Path/to/export
the root directory when you mount the share.
crossmnt
, because I have some others drives in the exported file system that I want to access also.
no_root_squash
, because I want to access as root user (su) from the client side. I'm pretty sure that I'm the only one that can do that in my local network.
Server and clients are Ubuntu 14.04 64bit.
If you want to use nfs3, the answer of @fumisky-wells works for me as well.
Solution 5
After battling with this same error message for hours, my problem turned out to be nothing more complicated than good old fashioned Linux file permissions on the NFS host.
The folder I was trying to share (/home/foo/app/share
) had the correct permissions, but because the user's home directory (/home/foo
) had 0750
mode on it, NFS wasn't able to traverse into it to access the shared dir.
As soon as I set the user's home directory to mode 0751
, the NFS service was able to traverse into it and I was able to mount the share from my client machine.
Related videos on Youtube
arsenal
profile for ferhan on Stack Exchange, a network of free, community-driven Q&A sites http://stackexchange.com/users/flair/335839.png
Updated on September 18, 2022Comments
-
arsenal over 1 year
I have three machines in production -
machineA 10.66.136.129 machineB 10.66.138.181 machineC 10.66.138.183
and all those machines have Ubuntu 12.04 installed in it and I have root access to all those three machines.
Now I am supposed to do below things in my above machines -
Create mount point /opt/exhibitor/conf Mount the directory in all servers. sudo mount <NFS-SERVER>:/opt/exhibitor/conf /opt/exhibitor/conf/
I have already created
/opt/exhibitor/conf
directory in all those three machines as mentioned above.Now I am trying to create a Mount Point. So I followed the below process -
Install NFS support files and NFS kernel server in all the above three machines
$ sudo apt-get install nfs-common nfs-kernel-server
Create the shared directory in all the above three machines
$ mkdir /opt/exhibitor/conf/
Edited the
/etc/exports
and added the entry like this in all the above three machines -# /etc/exports: the access control list for filesystems which may be exported # to NFS clients. See exports(5). # # Example for NFSv2 and NFSv3: # /srv/homes hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check) # # Example for NFSv4: # /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check) # /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check) # /opt/exhibitor/conf/ 10.66.136.129(rw) /opt/exhibitor/conf/ 10.66.138.181(rw) /opt/exhibitor/conf/ 10.66.138.183(rw)
I have tried mounting on machineA like below from machineB and machineC and it gives me this error-
root@machineB:/# sudo mount -t nfs 10.66.136.129:/opt/exhibitor/conf /opt/exhibitor/conf/ mount.nfs: access denied by server while mounting 10.66.136.129:/opt/exhibitor/conf root@machineC:/# sudo mount -t nfs 10.66.136.129:/opt/exhibitor/conf /opt/exhibitor/conf/ mount.nfs: access denied by server while mounting 10.66.136.129:/opt/exhibitor/conf
Did my
/etc/exports
file looks good? I am pretty sure, I have messed up myexports
file. As I have the same content in all the three machines in exports file.Any idea what wrong I am doing here? And what will be the correct
/exports
file here?-
Admin about 7 yearsFYI double check permissions on the host/client. If the NFS host has permissions
0750
or0700
then the client trying to mount is very likely to fail with this same error message. I changed the host from0750
to0755
and then the error went away and all was well. -
Admin almost 3 years@TrevorBoydSmith what are "host permissions", how to set them?
-
-
arsenal over 10 yearsI already have this in my exports file on machineA. And then I am mounting it from machineB and machineC and it doesn't work somehow.. Is it possible I have added same information in all the three machines in exports file, will that be a problem? I should be adding only in machineA?
-
arsenal over 10 yearsI just did that and now it works fine. I am trying to understand this whole thing in better way, so my first question is, machineA is NFS server and machineB and machineC are clients.. Correct? Second question is, if machineA is my NFS server, then only in the /etc/exports file of machineA, I will be adding the above three lines as you mentioned in your solution and we won't touch exports file of machineB and machineC? Correct?
-
clerksx over 10 years@TechGeeky As long as you are mounting a share on machine A, then that's correct in both cases.
-
arsenal over 10 yearsThanks for suggestion. I just did that and now it works fine. Instead of running
exportfs -a
, I ranexportfs -rv
. Is there any difference in between those? And in my case,showmount -e 10.66.136.129
I will be doing from machineB and machineC. right? -
slm over 10 years@TechGeeky - not really.
exportfs -rv
just does a reexport + is verbose. The-a
will export everything. As toshowmount -e
yes you can run it from those machines or the one serving the shares. -
arsenal over 10 yearsThanks. Now I understand this much better. Why I have asked this question because I also have similar stuff in staging environment. And what I did in those three machines in staging environment, I added same three lines in all my /etc/exports files of three machines instead of adding it only in machineA but still it works fine. And now I have understood the whole concept more clearly. Thanks for the help.
-
arsenal over 10 yearsOne last thing. I believe there is one more thing to this mount point, fstab file.. correct? Now which machine
fstab
file, I am supposed to modify? And what content I am supposed to add in there? -
arsenal over 10 yearsok.. Thanks, makese sense now.. One last thing. I believe there is one more thing to this mount point thing, fstab file.. correct? Now which machine fstab file, I am supposed to modify? And what content I am supposed to add in there? Any idea?
-
slm over 10 years@TechGeeky see updates. You add entries to the clients that want to consume the NFS shares.
-
clerksx over 10 years@TechGeeky You don't need it in the fstab if you are going to mount it manually to a mountpoint, but if you want it mounted automatically (or want the mountpoint to be determined automatically based on the value in fstab), take a look at centos.org/docs/5/html/5.1/Deployment_Guide/s2-nfs-fstab.html.
-
clerksx over 10 years+1, this answers the original problem that the OP had, my answer only appeared to be correct because of misleading wording in the question.
-
MDMoore313 over 9 yearsYou earned yourself an upvote sir; I have a NAS, so modding the /etc/export file isn't an option, but specifying the complete path did the trick. well done.
-
flickerfly almost 9 yearsOn Ubuntu, you must first install nfs-kernel-server for exportfs to be available. Source: manpages.ubuntu.com/manpages/trusty/man8/exportfs.8.html
-
DEAR ANGEL about 8 yearsNone of the rest helped, this was the solution, in my case.
-
Steve almost 8 yearsI tried this one and got
mount.nfs: Connection timed out
. (Client is Ubuntu 14.04 LTS 64-bit. Server is a QNAP NFS with QTS 4.0.2 2016/01/09.) -
Sridhar Sarnobat over 7 yearsYep, when I upgraded my server to Ubuntu 16 this was what the problem and solution was.
-
Gauthier about 7 yearsIt looks like I have to run
exportfs -a
on every restart of my server. Is it normal? What's the usual way to make this happen automagically? -
slm about 7 years@Gauthier - that shouldn't be required every restart. It should be done when the NFS service(s) are started on your box. This can vary from distro to distro so your question is probably better to ask on the main site than to ask via a comment on a pre-existing question/answer.
-
Amitav Pajni over 6 yearsBe careful with this. NFSv3 is ancient and long obsolete; it really shouldn't be used anymore (and this was even true when this post was written).
-
FreeSoftwareServers over 6 years
-
FreeSoftwareServers over 6 yearsI think the reason it failed is possibly NFSv4 because I know Fedora is bleeding edge new stuff and my old VM's worked fine but probably used older NFS version. Just a guess.
-
myrdd almost 6 yearssee also unix.stackexchange.com/q/396678/231113 in case you are using proxmox
-
Brian Leishman about 5 yearsMan I wish this was more towards the top, that's exactly what was happening in my case
-
Shah Zain about 5 yearsI can almost guarantee this would have been due to permissions on the
/media/jim
folder. If the directory you're trying to share is (or is inside of) a dir with only700
or750
mode, NFS won't be able to traverse into it. If you changed/media/jim
to751
, it would probably work. -
Thomas Praxl about 5 years@DaleAnderson is right. After a successful
sudo mount -o v3 192.168.0.200:"/media/pi/mydrive" /mnt/nfs-share
(raspbian on Raspi 3 B+), I also tried tosudo chmod 751 /media/pi
. Afterwards, I didn't need-o v3
anymore:sudo mount 192.168.0.200:"/media/pi/mydrive" /mnt/nfs-share
did the job (after unmounting). Many thanks to @DaleAnderson . -
Jim Stewart about 5 yearsThis is probably the problem. I guess I'm used to the ancient days when the NFS server just ran as root and blindly exported what it was told. I'll test this out.
-
Arnaldo Montoya over 3 yearsThis is the proper answer to the question.
-
Admin almost 2 yearsThis should be closer to the top! exact problem I had d: