Montare il volume NFS sul server Ubuntu Linux dal client macOS


14

Ho un server Ubuntu 14.04 LTS (una VM locale nel mio caso). Come posso montare una directory sul server Linux da un client Yosemite per Mac OS X, usando NFS?

Risposte:


35

Configurare il server Linux

  1. Installa il server NFS secondo la guida NFS di Ubuntu :

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

    sudo nano /etc/exports
    

    Ora aggiungi una linea simile a questa:

    /home/ubuntu 172.16.238.0/24(insecure,rw,all_squash,anonuid=1000,anongid=1000,no_subtree_check)
    
    • /home/ubuntu è la directory da esportare
    • 172.16.238.0/24sono gli indirizzi IP da cui accettare le connessioni. L'indirizzo IP del client Mac deve essere compreso in questo intervallo. Uso* per consentire da qualsiasi indirizzo IP. (Ma fai attenzione a non rendere il tuo server NFS disponibile per l'intera Internet!)
    • insecure significa accettare connessioni da numeri di porta non privilegiati (più alti)
    • rw significa leggere-scrivere
    • all_squash,anonuid=1000,anongid=1000impone che tutte le letture e le scritture vengano eseguite dall'utente / gruppo con UID / GID 1000 (1000 è l' ubuntuutente / gruppo predefinito sul mio server). Correreid sul server per scoprire il tuo UID / GID. Sono necessarie queste opzioni a meno che il server Ubuntu e il client Mac non utilizzino lo stesso UID / GID per l'utente principale.
    • no_subtree_check è una cosa da spettacolo
  3. Salva il file ed esegui

    sudo exportfs -vra
    

    per ricaricare le esportazioni NFS. (Non sono sicuro se l' -aopzione è necessaria.)

Configurazione del client Mac

  1. Modifica il file auto_master :

    sudo nano /etc/auto_master
    

    e cambia la riga iniziando con /netquanto segue:

    /net            -hosts      -nobrowse,nosuid,locallocks,nfc,actimeo=1
    
    • locallockscrea blocchi sul client anziché sul server. Senza questo, Finder diventa molto lento e impiega un'eternità a mostrare le directory.
    • nfc fa funzionare i nomi dei file UTF-8
    • actimeo=1impostare il timeout della cache degli attributi il ​​più breve possibile. Nota che impostandolo su 0(o aggiungendo noac), Finder non noterà quando un file viene eliminato sul server, quindi non possiamo usarlo.
    • Nota che non stiamo usando nfsvers=4qui. Ho avuto il panico del kernel sul Mac con questo, quindi sono tornato al valore predefinito (NFSv3).
  2. Aggiorna gli automount eseguendo

    sudo automount -vc
    

    (Se si è tentato in precedenza di montare un volume NFS, smontarlo prima, in questo modo: sudo umount -f /net/fileserver.local/home/ubuntu)

  3. Nel menu Finder, seleziona Vai -> Vai alla cartella e digita /net/SERVER_HOST_NAME, ad es/net/fileserver.local .

    Dovresti trovare la tua directory esportata lì, ad es /net/fileserver.local/home/ubuntu. Trascina questa directory nella barra laterale del Finder per facilitarne l'accesso in futuro.


Inoltre, esiste un modo per correggere le autorizzazioni. L'unico modo in cui devo accedere ai miei file dal Mac è dare 777 autorizzazioni alla cartella che voglio condividere :( altrimenti il ​​sistema mi mostra un messaggio che dice che non ho i permessi per sfogliare la cartella.
Carlos Vega

@carlosvega Le all_squash,anonuid=1000,anongid=1000opzioni si occupano delle autorizzazioni per me: tutto ciò che appartiene a UID 1000 sul server Ubuntu è accessibile dal client Mac senza problemi, quindi non è necessario chmodding per 777.
Jo Liss

5
Solo un breve commento, se vuoi solo montare "al volo" sul lato Mac, questo funziona per me:sudo mount -t nfs -o resvport 172.16.238.x:/home/ubuntu /Users/xyz/ubuntu
Scott Carlson,

funziona per me con Mac OSX Sierra e Ubuntu 16.04
Antonios Hadjigeorgalis

2
Le persone non si rendono conto di quanta prova ed errore ci sia dietro questa brillante risposta. Soprattutto la parte "nfc" è CRUCIAL quando si montano (o rsyncing) server non MacOS. All'inizio non lo noterai, ma UTF-8 non è lo stesso su OS X come lo è dappertutto. Senza di essa, i nomi dei tuoi file potrebbero essere confusi e richiedere ore e ore per essere risolti in seguito. So che non posso usare un commento per dire "grazie", quindi
finirò
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.