macos nfs
[问题] 挂载nfs的时候卡死
增加 -o nolock
选项
mount -t nfs -o resvport -o nolock 192.168.100.222:/var/www /private/nfs
sudo nfsd checkexports
mac卸载nsf时报错Unmount failed for /uzmap/temp/
解决方法:
sudo diskutil unmount /uzmap/temp/
#如果依然报上述错误。则要执行下面的命令查看占用挂载点的进程。然后将其kill掉sudo fuser -c /uzmap/temp
sudo mount -t nfs 192.168.0.106:/Users/pytool ssd/
nfs client
sudo mount -t nfs -o nolock 192.168.100.222:/var/www /private/nfs
mount of /nfsdata/centos7-data failed: Operation not permitted
参考 Mac Os X: Mount NFS Share / Set an NFS Client ,原来 Mac OS X挂载NFS共享需要 -o resvport 参数
sudo mount -t nfs -o resvport -o nolock 192.168.100.222:/var/www /private/nfs
Linux nfs server Operation not permitted
解决客户端权限问题
mount_nfs: can't mount /var/data/ from 192.168.0.250 onto /Users/pytool/nfs: Operation not permitted
sudo vi /etc/exports
/nfsdata *(rw,root_squash,no_all_squash,sync,insecure) # 直接在服务器上的/etc/exportfs文件中加入insecure参数
Macos NFS server Operation not permitted
mount_nfs: can't mount /var/data/ from 192.168.0.250 onto /Users/pytool/nfs: Operation not permitted
sudo mount_nfs -o resvport 192.168.100.100:/Users/pytool/nfs share
drwxr-xr-x 7 pytool staff 224B May 15 14:46 nfs
drwxr-xr-x 10 pytool admin 320B Jun 10 10:10 nfs
drwxr-xr-x 79 pytool staff 2.5K Jun 15 17:09 nfs1
解决方法:
sudo vi /etc/exports
/ -maproot=root # 新版本的 10.15 之后,增加了对权限的控制,不能再直接对根目录/进行挂载,所以需要将这行注释掉。重新设置绝对路径。
/Volumes/firefly -maproot=root -alldirs -rw # / Everyone生效配置
sudo nfsd restart查看生效状态
showmount -emac client 测试
sudo mount -o resvport -t nfs 192.168.0.105:/Volumes/firefly/ nfs
配置文件
sudo vi /etc/exports
/Users/my-name/Documents/Projects -alldirs -rw -maproot=my-name:staff -network 192.168.99.0 -mask 255.255.255.0
/Users -alldirs -rw -network 192.168.0.0 -mask 255.255.0.0
# 1. -alldirs 是共享 /Users 目录下所有文件
# 2. -network -mask 指定工作网段内允许访问
# 3. -maproot=root:wheel,把client端的root用户映射为Mac OS上的root,client端的root组映射为Mac OS上的wheel (gid=0) 组。这个参数非常重要,否则会nfsroot链接失败
/Users -maproot=root:staff -alldirs -rw # / Everyone
注意
1.默认为可读写,加入 -ro 为只读 readonly
控制服务
sudo nfsd enable
sudo nfsd disable
sudo nfsd start
sudo nfsd stop
sudo nfsd restart
sudo nfsd status
sudo nfsd checkexports
查看共享状态
showmount -e
showmount -e 192.168.99.1
客户端连接
sudo mkdir /mnt/Projects
sudo mount -t nfs -o nolock,nfsvers=3,vers=3 192.168.99.1:/Users/my-name/Documents/Projects /mnt/Projects/
NFS客户端推荐的参数配置
nfsvers=3,wsize=32768,rsize=32768,rw,bg,intr,hard,tcp
参数 | 意义 |
---|---|
nfsvers=3 | NFSv3,默认是 NFSv2,而 NFSv4 比较复杂,不是所有内核都支持。 |
wsize=32768 | 设置 32K 的写缓存,对于 UDP 方式来说,8K 是推荐值。 |
rsize=32768 | 设置 32K 的读缓存,对于 TCP 方式来说,32K 是推荐值。 |
rw | 读写方式,根据权限需要有时也设置为 ro(read only) |
bg | 如果安装失败(服务器没有响应), 在后台一直尝试,继续发其他的安装请求 |
hard | 如果服务器当机,让试图访问它的操作被阻塞,直到服务器恢复为止 |
intr | 允许用户中断被阻塞的操作(并且让它们返回一条错误消息) |
tcp | 选择通过 TCP 来传输,默认的 UDP 不好。 |
NFS-server:
苹果系统(MAC)默认自带了nfsd功能,并且随系统启动。我们要做的就是要配置:
命令行模式:
sudo vi /etc/exports ##编辑/etc/exports
/test -alldirs -rw -network 192.168.13.0 -mask 255.255.255.0 #说明:共享Users目录和所有子文件夹给192.168.13.0全网段,并设置为读写。
创建需要共享文件目录:sudo mkdir /test
设置权限:sudo chmod 777 -R /test
sudo nfsd enable #确认NFSD服务开启
sudo nfsd restart #如果nfsd已经启动,需要重启才会生效,否则会报错:(mount_nfs: can't mount /test from 192.168.13.5 onto /test2: Permission denied)
sudo nfsd update #刷新NFSD共享资源
showmount -e #显示当前共享的资源
备注:
#使用保留端口再试一下
sh-3.2# mount -o resvport 10.0.0.55:/nfsdata ttt
sudo mount -t nfs -o sync,tcp,noatime,rsize=1024,wsize=1024 10.124.156.250:/uzmap/temp /uzmap/temp
NFS-client:
客户端系统运行:
创建挂载点:sudo mkdir /test2
挂载:sudo mount -t nfs 192.168.13.31:/test /test2/
开机自动挂载:
sudo vim /etc/fstab
192.168.13.5:/test /test nfs defaults 0 0
至此完成部署。