Montar volume NFS no servidor Ubuntu Linux do cliente macOS


14

Eu tenho um servidor Ubuntu 14.04 LTS (uma VM local no meu caso). Como monto um diretório no servidor Linux a partir de um cliente Mac OS X Yosemite usando o NFS?

Respostas:


35

Configurando o Servidor Linux

  1. Instale o servidor NFS conforme o guia do Ubuntu NFS :

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

    sudo nano /etc/exports
    

    Agora adicione uma linha semelhante a esta:

    /home/ubuntu 172.16.238.0/24(insecure,rw,all_squash,anonuid=1000,anongid=1000,no_subtree_check)
    
    • /home/ubuntu é o diretório a ser exportado
    • 172.16.238.0/24são os endereços IP dos quais aceitar conexões. O endereço IP do cliente Mac deve estar nesse intervalo. Use *para permitir a partir de qualquer endereço IP. (Mas tenha cuidado para não disponibilizar o servidor NFS para toda a Internet!)
    • insecure significa aceitar conexões de números de porta não privilegiados (superiores)
    • rw significa leitura e gravação
    • all_squash,anonuid=1000,anongid=1000força todas as leituras e gravações a serem executadas pelo usuário / grupo com o UID / GID 1000 (1000 é o ubuntuusuário / grupo padrão no meu servidor). Execute idno servidor para descobrir seu UID / GID. Você precisa dessas opções, a menos que o servidor Ubuntu e o cliente Mac usem o mesmo UID / GID para o usuário principal.
    • no_subtree_check é uma coisa de desempenho
  3. Salve o arquivo e execute

    sudo exportfs -vra
    

    para recarregar as exportações do NFS. (Não tenho certeza se a -aopção é necessária.)

Configurando o cliente Mac

  1. Edite o arquivo auto_master :

    sudo nano /etc/auto_master
    

    e altere a linha começando com /neto seguinte:

    /net            -hosts      -nobrowse,nosuid,locallocks,nfc,actimeo=1
    
    • locallockscria bloqueios no cliente e não no servidor. Sem isso, o Finder fica muito lento e leva uma eternidade para mostrar diretórios.
    • nfc faz com que os nomes de arquivos UTF-8 funcionem
    • actimeo=1defina o tempo limite do cache do atributo o mais curto possível. Observe que configurá-lo para 0(ou adicionar noac) faz com que o Finder não note quando um arquivo é excluído no servidor, portanto, não podemos usá-lo.
    • Observe que não estamos usando nfsvers=4aqui. Entrei em pânico no kernel no Mac com isso, então voltei ao padrão (NFSv3).
  2. Atualize as montagens automáticas executando

    sudo automount -vc
    

    (Se você já tentou montar um volume NFS, desmonte-o primeiro, da seguinte forma sudo umount -f /net/fileserver.local/home/ubuntu:)

  3. No menu Finder, selecione Ir -> Ir para pasta e digite /net/SERVER_HOST_NAME, por exemplo /net/fileserver.local.

    Você deve encontrar seu diretório exportado, por exemplo, em /net/fileserver.local/home/ubuntu. Arraste esse diretório para a barra lateral do Finder para facilitar o acesso no futuro.


Além disso, existe alguma maneira de corrigir as permissões. A única maneira de acessar meus arquivos no Mac é dando 777 permissões para a pasta que quero compartilhar :( caso contrário, o sistema me mostrará uma mensagem informando que não tenho permissões para navegar na pasta.
Carlos Vega

@carlosvega As all_squash,anonuid=1000,anongid=1000opções de cuidar de permissões para mim - tudo propriedade da UID 1000 no servidor Ubuntu pode ser acessado a partir do cliente Mac não há problema, por isso não há necessidade de chmodding para 777.
Jo Liss

5
Apenas um rápido comentário, se você só quer montar "on the fly" no lado do mac, isso funciona para mim:sudo mount -t nfs -o resvport 172.16.238.x:/home/ubuntu /Users/xyz/ubuntu
Scott Carlson

funciona para mim com o Mac OSX Sierra e o Ubuntu 16.04
Antonios Hadjigeorgalis 17/11

2
As pessoas não percebem o quanto de tentativa e erro está por trás dessa resposta brilhante. Especialmente a parte "nfc" é CRUCIAL ao montar (ou rsyncing) servidores não MacOS. Você não notará a princípio, mas o UTF-8 não é o mesmo no OS X, como em qualquer outro lugar. Sem ele, seus nomes de arquivo podem muito bem ser ilegíveis e exigir horas a fio para serem corrigidos posteriormente. Eu sei que não posso usar um comentário para dizer "obrigado", por isso vou terminar aqui;) #
DanielSmedegaardBuus 5/16/16 /
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.