ฉันมีเซิร์ฟเวอร์ Ubuntu 14.04 LTS (VM ท้องถิ่นในกรณีของฉัน) ฉันจะเมาท์ไดเร็กทอรีบนเซิร์ฟเวอร์ Linux จากไคลเอ็นต์ Mac OS X Yosemite โดยใช้ NFS ได้อย่างไร
ฉันมีเซิร์ฟเวอร์ Ubuntu 14.04 LTS (VM ท้องถิ่นในกรณีของฉัน) ฉันจะเมาท์ไดเร็กทอรีบนเซิร์ฟเวอร์ Linux จากไคลเอ็นต์ Mac OS X Yosemite โดยใช้ NFS ได้อย่างไร
คำตอบ:
ติดตั้งเซิร์ฟเวอร์ NFS ตามคู่มือUbuntu NFS :
sudo apt-get install nfs-kernel-server
แก้ไข/etc/exports
:
sudo nano /etc/exports
ตอนนี้เพิ่มบรรทัดที่คล้ายกับสิ่งนี้:
/home/ubuntu 172.16.238.0/24(insecure,rw,all_squash,anonuid=1000,anongid=1000,no_subtree_check)
/home/ubuntu
เป็นไดเรกทอรีที่จะส่งออก172.16.238.0/24
เป็นที่อยู่ IP ที่จะยอมรับการเชื่อมต่อจาก ที่อยู่ IP ของไคลเอ็นต์ Mac ควรอยู่ในช่วงนี้ ใช้*
เพื่ออนุญาตจากที่อยู่ IP ใด ๆ (แต่ระวังอย่าให้เซิร์ฟเวอร์ NFS ของคุณใช้ได้กับอินเทอร์เน็ตทั้งหมด!)insecure
หมายถึงการยอมรับการเชื่อมต่อจากหมายเลขพอร์ตที่ไม่ได้รับสิทธิพิเศษ (สูงกว่า)rw
หมายถึงอ่าน - เขียนall_squash,anonuid=1000,anongid=1000
บังคับให้อ่านและเขียนทั้งหมดโดยผู้ใช้ / กลุ่มด้วย UID / GID 1000 (1000 เป็นubuntu
ผู้ใช้ / กลุ่มเริ่มต้นบนเซิร์ฟเวอร์ของฉัน) เรียกใช้id
บนเซิร์ฟเวอร์เพื่อค้นหา UID / GID ของคุณ คุณต้องมีตัวเลือกเหล่านี้ยกเว้นว่าเซิร์ฟเวอร์ Ubuntu และไคลเอนต์ Mac ของคุณใช้ UID / GID เดียวกันสำหรับผู้ใช้หลักno_subtree_check
เป็นสิ่งที่มีประสิทธิภาพบันทึกไฟล์และเรียกใช้
sudo exportfs -vra
เพื่อรีโหลดการเอ็กซ์พอร์ต NFS (ฉันไม่แน่ใจว่า-a
จำเป็นต้องใช้ตัวเลือกใด)
แก้ไขไฟล์auto_master :
sudo nano /etc/auto_master
และเปลี่ยนบรรทัดที่ขึ้นต้นด้วย/net
:
/net -hosts -nobrowse,nosuid,locallocks,nfc,actimeo=1
locallocks
สร้างการล็อกบนไคลเอนต์แทนที่จะบนเซิร์ฟเวอร์ หากไม่มีสิ่งนี้ Finder จะช้ามากและใช้เวลาตลอดไปในการแสดงไดเรกทอรีnfc
ทำให้ชื่อไฟล์ UTF-8 ใช้งานได้actimeo=1
ตั้งค่าหมดเวลาใช้งานแคชแอตทริบิวต์สั้นที่สุด โปรดทราบว่าการตั้งค่าเป็น0
(หรือเพิ่มnoac
) จะทำให้ Finder ไม่ต้องสังเกตเมื่อไฟล์ถูกลบบนเซิร์ฟเวอร์ดังนั้นเราจึงไม่สามารถใช้งานได้nfsvers=4
ที่นี่ ฉันได้รับความตื่นตระหนกของเคอร์เนลบน Mac ดังนั้นฉันจึงกลับไปใช้ค่าเริ่มต้น (NFSv3)รีเฟรชอัตโนมัติโดยเรียกใช้
sudo automount -vc
(ถ้าคุณพยายามก่อนหน้านี้ที่จะติดปริมาณ NFS การเลิกเมานท์มันเป็นครั้งแรกเช่นดังนั้น: sudo umount -f /net/fileserver.local/home/ubuntu
)
ใน Finder เมนูเลือกไป -> ไปที่โฟลเดอร์และประเภทเช่น/net/SERVER_HOST_NAME
/net/fileserver.local
/net/fileserver.local/home/ubuntu
คุณควรหาไดเรกทอรีส่งออกของคุณมีเช่นที่ ลากไดเรกทอรีนี้ไปที่แถบข้าง Finder เพื่อให้สามารถเข้าถึงได้ง่ายในอนาคต
all_squash,anonuid=1000,anongid=1000
ตัวเลือกดูแลสิทธิ์สำหรับฉัน - ทุกสิ่งที่ UID 1000 เป็นเจ้าของบนเซิร์ฟเวอร์ Ubuntu สามารถเข้าถึงได้จากไคลเอนต์ Mac ไม่มีปัญหาดังนั้นจึงไม่จำเป็นต้อง chmodding ถึง 777
sudo mount -t nfs -o resvport 172.16.238.x:/home/ubuntu /Users/xyz/ubuntu
rsync
ไอเอ็นจี) เซิร์ฟเวอร์ที่ไม่ใช่ MacOS คุณจะไม่สังเกตเห็นในตอนแรก แต่ UTF-8 ไม่เหมือนกันใน OS X เนื่องจากมีอยู่ทุกที่ หากไม่มีชื่อไฟล์ของคุณอาจอ่านไม่ออกและต้องใช้เวลาหลายชั่วโมงเพื่อแก้ไขในภายหลัง ฉันรู้ว่าฉันไม่สามารถใช้ความคิดเห็นที่จะพูดว่า "ขอบคุณ" ดังนั้นฉันจะจบมันที่นี่;)