I am new to using Apple as main OS. I am used to fstab in Linux to keep the mounts for nfs. When I use Go to in Finder to mount nfs://serveripaddress/home/shared I get a permissions error.

The below command works from Terminal though:

    mount -t nfs -o resvport,nolocks,locallocks,intr,soft,wsize=32768,rsize=3276 \
        serveripaddress:/home/shared /private/shared

How can I get this to be mounted each time I log in and vpn to the network where this share resides?

  • Currently I have resorted to a shell script in my documents folder that when run will mount the desired drives. – user1088014 Sep 30 '13 at 11:54
  • I am also grappling with NFS - see my answer to your question below. Could you please explain the mount options in your example and why you're using them? – starfry Oct 8 '13 at 8:57
up vote 9 down vote accepted

I have spent quite a bit of time figuring out automounts of NFS shares in OS X...

Somewhere along the line, Apple decided allowing mounts directly into /Volumes should not be possible:

/etc/auto_master (see last line):

#
# Automounter master map
#
+auto_master        # Use directory service
/net            -hosts      -nobrowse,hidefromfinder,nosuid
/home           auto_home   -nobrowse,hidefromfinder
/Network/Servers    -fstab
/-          -static
/-          auto_nfs    -nobrowse,nosuid

/etc/auto_nfs (this is all one line):

/Volumes/my_mount    -fstype=nfs,noowners,nolockd,noresvport,hard,bg,intr,rw,tcp,nfc nfs://192.168.1.1:/exports/my_share

This will not work (anymore!) though it "should".

$ sudo automount -cv
...
automount: /Volumes/my_mount: mountpoint unavailable

What's the solution?

It's so easy my jaw dropped when I figured it out. Basically, we trick OS X into thinking we're mounting * somewhere else. *

When you're talking about paths in just about any environment, the root folder is the highest path you can reach, whether it's C:\ (windows) or / (*nix)

When you're at this path, attempting to reach the parent path, via .. will keep you at the root path.

For example: /../../../../ is still just /

By now, a few of you have already figured it out.

TL;DR / Solution:

Change your /etc/auto_nfs config from (this is all one line):

/Volumes/my_mount    -fstype=nfs,noowners,nolockd,noresvport,hard,bg,intr,rw,tcp,nfc nfs://192.168.1.1:/exports/my_share

To (this is all one line):

/../Volumes/my_mount    -fstype=nfs,noowners,nolockd,noresvport,hard,bg,intr,rw,tcp,nfc nfs://192.168.1.1:/exports/my_share

And re-run the automounter:

$ sudo automount -cv
...
automount: /Volumes/my_mount: mounted

..... there you go! Technically /../Volumes is still /Volumes, but the automounter does not see things that way ;)

This configuration persists the mount across restarts, and creates the mountpoint automatically.

I KNOW, RIGHT?

I am also new to OSX. This is how I mounted my Linux share. I used sudo vifs which is apparently the OSX preferred way to edit /etc/fstab. I then entered a mount stanza like the below:

myserver:/path/to/files /Users/me/files nfs resvport,bg,async,nfc 0 0

This works and the mount happens automatically. However I am suffering from the famous show-performance-in-finder issue (copying to server fast on command line but excruciatingly slow in finder).

The mount options I used are:

  • resvport - needed to use a low port as expected by Linux server
  • bg - the mount will be silently retried in the background if unsuccessful
  • async - my attempt to increase performace. man mount_nfs and read the risks.
  • nfc - makes UTF-8 characters work properly (man mount_nfs)

For completeness, here is the server-side configuration in /etc/exports:

/home/me/files 10.20.30.40(rw,sync,all_squash,anonuid=1000,anongid=100)

Here, 10.20.30.40 should be the IP of the OSX client (assuming you want to restrict the export to that client). My Linux uid/gid are 1000/100. I've used all-squash to convert uid/gid to those I have on Linux because of the OSX differences. This isn't a perfect way to do this but it meets my immediate needs.

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.