我试图弄清楚为什么 macOS 客户端在访问从 CentOS 7 服务器自动挂载的 NFS 主目录上的文件时会重新启动。完全相同的配置在 CentOS 6 NFS 服务器上运行良好。
在 CentOS 7 服务器上:
# cat /etc/selinux/config
SELINUX=disabled
SELINUXTYPE=targeted
# systemctl stop firewalld
# cat /etc/exports
/export mac.corp.org(rw,insecure)
# systemctl enable nfs
# systemctl start nfs
# showmount -e
Export list for c7.corp.org:
/export mac.corp.org
# id jdoe
uid=1001(jdoe) gid=1001(jdoe) groups=1001(jdoe)
在 macOS 客户端(ElCapitan 或 Sierra)上:
# cat /etc/auto_home
jdoe -fstype=nfs,vers=4,sec=sys,proto=tcp,resvport,soft,intr,rsize=32768,wsize=32768,nosuid,rw c7.corp.org:/export/&
# id jdoe
uid=1001(jdoe) gid=1001(jdoe) groups=20(staff),701(com.apple.sharepoint.group.1),12(everyone),61(localaccounts),79(_appserverusr),80(admin),81(_appserveradm),98(_lpadmin),33(_appstore),100(_lpoperator),204(_developer),395(com.apple.access_ftp),398(com.apple.access_screensharing),399(com.apple.access_ssh-disabled)
# su - jdoe
Password:
# pwd
/home/jdoe
# mount
/dev/disk0s2 on / (hfs, local, journaled)
devfs on /dev (devfs, local, nobrowse)
map -hosts on /net (autofs, nosuid, automounted, nobrowse)
map auto_home on /home (autofs, automounted, nobrowse)
c7.corp.org:/export/jdoe on /home/jdoe (nfs, nodev, nosuid, automounted, nobrowse)
# vim non-existant_file.txt
:q
使用 VI 进行简单的“打开/关闭”会导致 macOS 崩溃并重新启动,而不会在 /private/var/log/system.log 中写入任何内容。
有人知道如何解决我的问题吗?
答案1
修复方法是将 autofs 配置为使用 nfs v3。Osx 的 nfsv4 实现存在问题,而 Apple 并不急于修复它。
jdoe -fstype=nfs,vers=3,sec=sys,proto=tcp,resvport,soft,intr,rsize=32768,wsize=32768,nosuid,rw c7.corp.org:/export/&