Pasang volume NFS di server Linux Ubuntu dari klien macOS

14

Saya memiliki server Ubuntu 14.04 LTS (VM lokal dalam kasus saya). Bagaimana cara memasang direktori pada server Linux dari klien Mac OS X Yosemite, menggunakan NFS?

Jo Liss
sumber

Jawaban:

35

Menyiapkan server Linux

  1. Instal server NFS sesuai panduan Ubuntu NFS :

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

    sudo nano /etc/exports
    

    Sekarang tambahkan baris yang mirip dengan ini:

    /home/ubuntu 172.16.238.0/24(insecure,rw,all_squash,anonuid=1000,anongid=1000,no_subtree_check)
    
    • /home/ubuntu adalah direktori untuk mengekspor
    • 172.16.238.0/24adalah alamat IP untuk menerima koneksi. Alamat IP klien Mac harus dalam kisaran ini. Gunakan *untuk mengizinkan dari alamat IP apa pun. (Tapi hati-hati jangan sampai server NFS Anda tersedia untuk seluruh internet!)
    • insecure berarti menerima koneksi dari nomor port yang tidak terjangkau (lebih tinggi)
    • rw berarti baca-tulis
    • all_squash,anonuid=1000,anongid=1000memaksa semua membaca dan menulis untuk dilakukan oleh pengguna / grup dengan UID / GID 1000 (1000 adalah ubuntupengguna / grup default di server saya). Jalankan iddi server untuk mengetahui UID / GID Anda. Anda memerlukan opsi ini kecuali server Ubuntu dan klien Mac Anda menggunakan UID / GID yang sama untuk pengguna utama.
    • no_subtree_check adalah hal kinerja
  3. Simpan file dan jalankan

    sudo exportfs -vra
    

    untuk memuat ulang ekspor NFS. (Saya tidak yakin apakah -aopsi itu diperlukan.)

Menyiapkan klien Mac

  1. Edit file auto_master :

    sudo nano /etc/auto_master
    

    dan ubah baris dimulai dengan /netyang berikut ini:

    /net            -hosts      -nobrowse,nosuid,locallocks,nfc,actimeo=1
    
    • locallocksmembuat kunci pada klien daripada di server. Tanpa ini, Finder menjadi sangat lambat dan membutuhkan waktu lama untuk menampilkan direktori.
    • nfc membuat nama file UTF-8 berfungsi
    • actimeo=1atur batas waktu cache atribut sesingkat mungkin. Perhatikan bahwa pengaturan ke 0(atau menambahkan noac) menyebabkan Finder tidak memperhatikan ketika file dihapus di server, jadi kami tidak dapat menggunakannya.
    • Perhatikan bahwa kami tidak menggunakan di nfsvers=4sini. Saya mendapatkan panik kernel pada Mac dengan ini, jadi saya kembali ke default (NFSv3).
  2. Segarkan kembali automount dengan menjalankan

    sudo automount -vc
    

    (Jika sebelumnya Anda mencoba untuk me-mount volume NFS, unmount dulu, seperti: sudo umount -f /net/fileserver.local/home/ubuntu)

  3. Dalam menu Finder, pilih Go -> Go to Folder, dan ketik /net/SERVER_HOST_NAME, mis /net/fileserver.local.

    Anda harus menemukan direktori yang diekspor di sana, misalnya di /net/fileserver.local/home/ubuntu. Seret direktori ini ke bilah samping Finder untuk memudahkannya mengakses di masa mendatang.

Jo Liss
sumber
Juga, apakah ada cara untuk memperbaiki izin. Satu-satunya cara saya harus mengakses file-file saya dari Mac adalah memberikan 777 izin ke folder yang ingin saya bagikan :( jika tidak, sistem menunjukkan kepada saya pesan yang memberitahukan saya bahwa saya tidak memiliki izin untuk menelusuri folder.
Carlos Vega
@carlosvega all_squash,anonuid=1000,anongid=1000Opsi ini mengurus izin untuk saya - semua yang dimiliki oleh UID 1000 di server Ubuntu dapat diakses dari klien Mac tanpa masalah, jadi tidak perlu untuk melakukan chmodding ke 777.
Jo Liss
5
Hanya komentar singkat, jika Anda hanya ingin me-mount "on the fly" di sisi mac, ini bekerja untuk saya:sudo mount -t nfs -o resvport 172.16.238.x:/home/ubuntu /Users/xyz/ubuntu
Scott Carlson
bekerja untuk saya dengan Mac OSX Sierra dan Ubuntu 16.04
Antonios Hadjigeorgalis
2
Orang-orang tidak menyadari betapa banyak trial and error di balik jawaban yang cemerlang ini. Terutama bagian "nfc" yang KRUCIAL saat memasang (atau rsyncing) server non-MacOS. Anda tidak akan melihat pada awalnya, tetapi UTF-8 tidak sama pada OS X seperti di tempat lain. Tanpa itu, nama file Anda mungkin sangat kacau dan membutuhkan waktu berjam-jam untuk memperbaikinya nanti. Saya tahu saya tidak bisa menggunakan komentar untuk mengatakan, "terima kasih," jadi saya akan mengakhiri saja di sini;)
DanielSmedegaardBuus