Monter le volume NFS sur le serveur Ubuntu Linux à partir du client macOS

14

J'ai un serveur Ubuntu 14.04 LTS (une machine virtuelle locale dans mon cas). Comment monter un répertoire sur le serveur Linux à partir d'un client Mac OS X Yosemite, en utilisant NFS?

Jo Liss
la source

Réponses:

35

Configuration du serveur Linux

  1. Installez le serveur NFS conformément au guide Ubuntu NFS :

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

    sudo nano /etc/exports
    

    Ajoutez maintenant une ligne similaire à celle-ci:

    /home/ubuntu 172.16.238.0/24(insecure,rw,all_squash,anonuid=1000,anongid=1000,no_subtree_check)
    
    • /home/ubuntu est le répertoire à exporter
    • 172.16.238.0/24est l'adresse IP à partir de laquelle les connexions doivent être acceptées. L'adresse IP du client Mac doit être dans cette plage. Utilisez *pour autoriser à partir de n'importe quelle adresse IP. (Mais attention à ne pas rendre votre serveur NFS accessible à l'ensemble d'Internet!)
    • insecure moyens d'accepter des connexions à partir de numéros de port non privilégiés (supérieurs)
    • rw signifie lecture-écriture
    • all_squash,anonuid=1000,anongid=1000force toutes les lectures et écritures à être effectuées par l'utilisateur / groupe avec UID / GID 1000 (1000 est l' ubuntuutilisateur / groupe par défaut sur mon serveur). Exécutez idsur le serveur pour connaître votre UID / GID. Vous avez besoin de ces options sauf si votre serveur Ubuntu et votre client Mac utilisent le même UID / GID pour l'utilisateur principal.
    • no_subtree_check est une chose de performance
  3. Enregistrez le fichier et exécutez

    sudo exportfs -vra
    

    pour recharger les exportations NFS. (Je ne sais pas si l' -aoption est nécessaire.)

Configuration du client Mac

  1. Modifiez le fichier auto_master :

    sudo nano /etc/auto_master
    

    et changez la ligne commençant par /netce qui suit:

    /net            -hosts      -nobrowse,nosuid,locallocks,nfc,actimeo=1
    
    • locallockscrée des verrous sur le client plutôt que sur le serveur. Sans cela, le Finder devient très lent et prend une éternité pour afficher les répertoires.
    • nfc fait fonctionner les noms de fichiers UTF-8
    • actimeo=1définissez le délai d'expiration du cache d'attributs aussi court que possible. Notez que le définir 0(ou l'ajouter noac) empêche le Finder de remarquer lorsqu'un fichier est supprimé sur le serveur, nous ne pouvons donc pas l'utiliser.
    • Notez que nous n'utilisons pas nfsvers=4ici. J'ai eu des paniques du noyau sur le Mac avec cela, donc je suis revenu à la valeur par défaut (NFSv3).
  2. Actualisez les montages automatiques en exécutant

    sudo automount -vc
    

    (Si vous avez déjà essayé de monter un volume NFS, d' abord le démonter, comme suit: sudo umount -f /net/fileserver.local/home/ubuntu)

  3. Dans le menu Finder, sélectionnez Aller -> Aller au dossier et tapez /net/SERVER_HOST_NAME, par exemple /net/fileserver.local.

    Vous devriez y trouver votre répertoire exporté, par exemple à /net/fileserver.local/home/ubuntu. Faites glisser ce répertoire vers la barre latérale du Finder pour en faciliter l'accès à l'avenir.

Jo Liss
la source
Existe-t-il également un moyen de corriger les autorisations. La seule façon d'accéder à mes fichiers à partir du Mac est de donner 777 autorisations au dossier que je veux partager :( sinon le système me montre un message me disant que je n'ai pas les autorisations pour parcourir le dossier.
Carlos Vega
@carlosvega Les all_squash,anonuid=1000,anongid=1000options prennent soin des autorisations pour moi - tout ce qui appartient à l'UID 1000 sur le serveur Ubuntu est accessible sans problème depuis le client Mac, donc il n'y a pas besoin de chmodding au 777.
Jo Liss
5
Juste un petit commentaire, si vous voulez juste monter "à la volée" côté mac, ça marche pour moi:sudo mount -t nfs -o resvport 172.16.238.x:/home/ubuntu /Users/xyz/ubuntu
Scott Carlson
fonctionne pour moi avec Mac OSX Sierra et Ubuntu 16.04
Antonios Hadjigeorgalis
2
Les gens ne réalisent pas à quel point les essais et les erreurs se cachent derrière cette brillante réponse. En particulier, la partie "nfc" est CRUCIALE lors du montage (ou rsyncing) de serveurs non-MacOS. Vous ne le remarquerez pas au début, mais l'UTF-8 n'est pas le même sur OS X que partout ailleurs. Sans cela, vos noms de fichiers pourraient très bien être tronqués et nécessiter des heures pour être corrigés plus tard. Je sais que je ne peux pas utiliser un commentaire pour dire "merci", donc je vais juste le terminer ici;)
DanielSmedegaardBuus