Смонтируйте том NFS на сервере Ubuntu Linux с клиента MacOS

14

У меня есть сервер Ubuntu 14.04 LTS (локальная виртуальная машина в моем случае). Как мне подключить каталог на сервере Linux от клиента Yosemite для Mac OS X, используя NFS?

Джо Лисс
источник

Ответы:

35

Настройка сервера Linux

  1. Установите сервер NFS в соответствии с руководством по Ubuntu NFS :

    sudo apt-get install nfs-kernel-server
    
  2. Редактировать /etc/exports:

    sudo nano /etc/exports
    

    Теперь добавьте строку, похожую на эту:

    /home/ubuntu 172.16.238.0/24(insecure,rw,all_squash,anonuid=1000,anongid=1000,no_subtree_check)
    
    • /home/ubuntu каталог для экспорта
    • 172.16.238.0/24IP-адреса, с которых принимаются соединения. IP-адрес клиента Mac должен быть в этом диапазоне. Используйте *для разрешения с любого IP-адреса. (Но будьте осторожны, чтобы ваш NFS-сервер не был доступен всему интернету!)
    • insecure означает принимать соединения с непривилегированных (более высоких) номеров портов
    • rw означает чтение-запись
    • all_squash,anonuid=1000,anongid=1000принудительно выполняет все операции чтения и записи пользователем / группой с UID / GID 1000 (1000 - это ubuntuпользователь / группа по умолчанию на моем сервере). Запустите idна сервере, чтобы узнать свой UID / GID. Вам нужны эти параметры, если только ваш сервер Ubuntu и клиент Mac не используют одинаковые UID / GID для основного пользователя.
    • no_subtree_check это вещь производительности
  3. Сохраните файл и запустите

    sudo exportfs -vra
    

    перезагрузить экспорт NFS. (Я не уверен, если -aопция необходима.)

Настройка клиента Mac

  1. Отредактируйте файл auto_master :

    sudo nano /etc/auto_master
    

    и измените строку, начиная с /netследующего:

    /net            -hosts      -nobrowse,nosuid,locallocks,nfc,actimeo=1
    
    • locallocksсоздает блокировки на клиенте, а не на сервере. Без этого Finder становится очень медленным и тратит много времени, чтобы показать каталоги.
    • nfc заставляет работать с именами файлов UTF-8
    • actimeo=1установите тайм-аут кэша атрибутов как можно короче. Обратите внимание, что установка его 0(или добавление noac) заставляет Finder не замечать, когда файл удаляется на сервере, поэтому мы не можем его использовать.
    • Обратите внимание, что мы не используем nfsvers=4здесь. Я получил панику ядра на Mac с этим, поэтому я вернулся к стандартному (NFSv3).
  2. Обновите автомонтирования, запустив

    sudo automount -vc
    

    (Если вы ранее пытались смонтировать тома NFS, размонтировать первый, например , так: sudo umount -f /net/fileserver.local/home/ubuntu)

  3. В меню Finder выберите «Перейти» -> «Перейти к папке» и введите /net/SERVER_HOST_NAME, например /net/fileserver.local.

    Вы должны найти там экспортированный каталог, например, в /net/fileserver.local/home/ubuntu. Перетащите этот каталог на боковую панель Finder, чтобы облегчить доступ к нему в будущем.

Джо Лисс
источник
Кроме того, есть ли способ исправить разрешения. Единственный способ получить доступ к своим файлам с Mac - дать 777 разрешений для папки, которой я хочу поделиться :( в противном случае система показывает мне сообщение, в котором говорится, что у меня нет прав для просмотра папки.
Карлос Вега
@carlosvega all_squash,anonuid=1000,anongid=1000Опции позаботятся о разрешениях для меня - ко всему, что принадлежит UID 1000 на сервере Ubuntu, можно получить доступ из клиента Mac без проблем, поэтому нет необходимости в chmodding для 777.
Jo Liss
5
Просто быстрый комментарий, если вы просто хотите смонтировать «на лету» на стороне Mac, это работает для меня:sudo mount -t nfs -o resvport 172.16.238.x:/home/ubuntu /Users/xyz/ubuntu
Скотт Карлсон
работает для меня с Mac OSX Sierra и Ubuntu 16.04
Антониос Хаджигеоргалис
2
Люди не понимают, сколько проб и ошибок скрывается за этим блестящим ответом. В частности, часть "nfc" является CRUCIAL при монтировании (или подключении rsync) серверов не MacOS. Сначала вы этого не заметите, но UTF-8 на OS X не такой, как везде. Без этого имена ваших файлов могут быть искажены, и для их исправления потребуются часы подряд. Я знаю, что не могу использовать комментарий, чтобы сказать «спасибо», поэтому я просто закончу его здесь;)
DanielSmedegaardBuus