Podłącz wolumin NFS na serwerze Ubuntu Linux z klienta macOS

14

Mam serwer Ubuntu 14.04 LTS (w moim przypadku lokalna maszyna wirtualna). Jak zamontować katalog na serwerze Linux z klienta Mac OS X Yosemite, używając NFS?

Jo Liss
źródło

Odpowiedzi:

35

Konfigurowanie serwera Linux

  1. Zainstaluj serwer NFS zgodnie z przewodnikiem Ubuntu NFS :

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

    sudo nano /etc/exports
    

    Teraz dodaj wiersz podobny do tego:

    /home/ubuntu 172.16.238.0/24(insecure,rw,all_squash,anonuid=1000,anongid=1000,no_subtree_check)
    
    • /home/ubuntu to katalog do wyeksportowania
    • 172.16.238.0/24to adresy IP, z których można akceptować połączenia. Adres IP klienta Mac powinien znajdować się w tym zakresie. Użyj, *aby zezwolić z dowolnego adresu IP. (Uważaj jednak, aby nie udostępnić serwera NFS w całym Internecie!)
    • insecure oznacza akceptowanie połączeń z nieuprzywilejowanych (wyższych) numerów portów
    • rw oznacza odczyt i zapis
    • all_squash,anonuid=1000,anongid=1000wymusza wykonanie wszystkich odczytów i zapisów przez użytkownika / grupę z UID / GID 1000 (1000 to domyślny ubuntuużytkownik / grupa na moim serwerze). Uruchom idna serwerze, aby znaleźć swój identyfikator UID / GID. Potrzebujesz tych opcji, chyba że serwer Ubuntu i klient Mac używają tego samego UID / GID dla głównego użytkownika.
    • no_subtree_check to kwestia wydajności
  3. Zapisz plik i uruchom

    sudo exportfs -vra
    

    aby ponownie załadować eksport NFS. (Nie jestem pewien, czy ta -aopcja jest konieczna.)

Konfigurowanie klienta Mac

  1. Edytuj plik auto_master :

    sudo nano /etc/auto_master
    

    i zmień wiersz zaczynając /netod następującego:

    /net            -hosts      -nobrowse,nosuid,locallocks,nfc,actimeo=1
    
    • locallockstworzy blokady na kliencie, a nie na serwerze. Bez tego Finder staje się bardzo wolny i trwa wieczność, aby wyświetlać katalogi.
    • nfc sprawia, że ​​nazwy plików UTF-8 działają
    • actimeo=1ustaw limit czasu pamięci podręcznej atrybutów na jak najkrótszy. Pamiętaj, że ustawienie go 0(lub dodanie noac) powoduje, że Finder nie zauważa, kiedy plik jest usuwany na serwerze, więc nie możemy go użyć.
    • Pamiętaj, że nie korzystamy nfsvers=4tutaj. Dzięki temu dostałem panikę jądra na Macu, więc wróciłem do domyślnej wersji (NFSv3).
  2. Odśwież automounts, uruchamiając

    sudo automount -vc
    

    (Jeśli wcześniej próbowałeś zamontować wolumin NFS, najpierw odmontuj go, np .: sudo umount -f /net/fileserver.local/home/ubuntu )

  3. W menu Finder wybierz Idź -> Idź do folderu i wpisz /net/SERVER_HOST_NAME, np/net/fileserver.local .

    Powinieneś znaleźć tam wyeksportowany katalog, np /net/fileserver.local/home/ubuntu. O. Przeciągnij ten katalog na pasek boczny Findera, aby ułatwić dostęp w przyszłości.

Jo Liss
źródło
Czy jest też jakiś sposób, aby naprawić uprawnienia. Jedynym sposobem, w jaki muszę uzyskać dostęp do moich plików z komputera Mac, jest udzielenie 777 uprawnień do folderu, który chcę udostępnić :( w przeciwnym razie system wyświetli komunikat informujący, że nie mam uprawnień do przeglądania folderu.
Carlos Vega
@carlosvega all_squash,anonuid=1000,anongid=1000Opcje zajmują się dla mnie uprawnieniami - do wszystkiego, co ma UID 1000 na serwerze Ubuntu, można uzyskać dostęp z klienta Mac bez problemu, więc nie ma potrzeby przeskakiwania do 777.
Jo Liss
5
Krótki komentarz, jeśli chcesz po prostu zamontować „w locie” po stronie Maca, działa to dla mnie:sudo mount -t nfs -o resvport 172.16.238.x:/home/ubuntu /Users/xyz/ubuntu
Scott Carlson
działa dla mnie z Mac OSX Sierra i Ubuntu 16.04
Antonios Hadjigeorgalis,
2
Ludzie nie zdają sobie sprawy, jak wiele prób i błędów kryje się za tą świetną odpowiedzią. Szczególnie część „nfc” jest KRYZYSOWA podczas montowania (lub rsyncing) serwerów innych niż MacOS. Na początku nie zauważysz, ale UTF-8 nie jest taki sam w OS X, jak wszędzie indziej. Bez tego nazwy plików mogą być bardzo zniekształcone i wymagają wielu godzin, aby je naprawić później. Wiem, że nie mogę użyć komentarza, by powiedzieć „dziękuję”, więc po prostu to
zakończę