22

I have an Ubuntu 20.04 server (a local VM in my case). How do I mount a directory on the Linux server from a macOS Catalina client, using NFS?

askedAug 24, 2015 at 15:37
Jo Liss's user avatar

1 Answer1

48

Setting up the Linux server

  1. Install the NFS server as per theUbuntu NFS guide:

    sudo apt install nfs-kernel-server
  2. Edit/etc/exports:

    sudo nano /etc/exports

    Now add a line similar to this:

    /home/ubuntu 172.16.238.0/24(insecure,rw,all_squash,anonuid=1000,anongid=1000,no_subtree_check)
    • /home/ubuntu is the directory to export
    • 172.16.238.0/24 is the IP addresses to accept connections from. The Mac client's IP address should be in this range. Use* to allow from any IP address. (But be careful not to make your NFS server available to the entire internet!)
    • insecure means to accept connections from unprivileged (higher) port numbers
    • rw means read-write
    • all_squash,anonuid=1000,anongid=1000 forces all reads and writes to be performed by the user/group with UID/GID 1000 (1000 is the defaultubuntu user/group on my server). Run theid command on the server to find out your UID/GID. You need these options unless your Ubuntu server and Mac client use the same UID/GID for the main user.
    • no_subtree_check is a performance thing
  3. Save the file and run

    sudo exportfs -vra

    to reload the NFS exports. (I'm not sure if the-a option is necessary.)

Setting up the Mac client

  1. On the macOS client, edit the/etc/auto_master file (documented in theauto_master man page):

    sudo nano /etc/auto_master

    and change the line starting with/net to the following (or add it if necessary):

    /net                    -hosts          -nobrowse,nosuid,locallocks,nfc,actimeo=1
    • locallocks creates locks on the client rather than on the server. Without this, Finder becomes very slow and takes forever to show directories.
    • nfc makes UTF-8 file names work
    • actimeo=1 sets the attribute cache timeout as short as possible. Note that setting it to0 (or addingnoac) causes Finder not to notice when a file is deleted on the server, so we can't use it.
    • Note that we're not usingnfsvers=4 here. I got kernel panics on the Mac with this, so I went back to the default (NFSv3).

    Note: It appears that some macOS software updates can overwrite this file and remove your changes. I've found myself having to go back to back to this answer once a year or so re-apply the changes.

  2. Refresh the automounts by running

    sudo automount -vc

    (If you previously tried to mount an NFS volume, unmount it first, like so:sudo umount -f /net/fileserver.local/home/ubuntu)

  3. In the Finder menu, select Go -> Go to Folder, and type/net/SERVER_HOST_NAME, e.g./net/fileserver.local.

    You should find your exported directory in there, e.g. at/net/fileserver.local/home/ubuntu. Drag this directory to the Finder sidebar to make it easy to access in the future.

answeredAug 24, 2015 at 15:37
Jo Liss's user avatar
7
  • Also, is there any way to fix the permissions. The only way I have to access my files from the Mac is giving 777 permissions to the folder I want to share :( otherwise the system shows me a message telling my I don't have permissions to browse the folder.CommentedSep 4, 2015 at 20:08
  • @carlosvega Theall_squash,anonuid=1000,anongid=1000 options take care of permissions for me - everything owned by UID 1000 on the Ubuntu server can be accessed from the Mac client no problem, so there's no need for chmodding to 777.CommentedSep 7, 2015 at 14:34
  • 6
    Just a quick comment, if you just want to mount "on the fly" on the mac side, this works for me :sudo mount -t nfs -o resvport 172.16.238.x:/home/ubuntu /Users/xyz/ubuntuCommentedSep 9, 2015 at 23:13
  • works for me with Mac OSX Sierra and Ubuntu 16.04CommentedNov 17, 2016 at 18:26
  • 3
    People don't realize how much trial and error lies behind this brilliant answer. Especially the "nfc" part is CRUCIAL when mounting (orrsyncing) non-MacOS servers. You won't notice at first, but the UTF-8 ain't the same on OS X as it is everywhere else. Without it, your file names might very well be garbled and require hours on end to fix later on. I know I can't use a comment to say, "thank you," so I'll just end it here ;)CommentedDec 5, 2016 at 13:43

You mustlog in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.