macos nfs


原文链接: 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

解决方法:

  1. sudo vi /etc/exports
    / -maproot=root # 新版本的 10.15 之后,增加了对权限的控制,不能再直接对根目录/进行挂载,所以需要将这行注释掉。重新设置绝对路径。
    /Volumes/firefly -maproot=root -alldirs -rw # / Everyone

  2. 生效配置
    sudo nfsd restart

  3. 查看生效状态
    showmount -e

  4. mac 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=3NFSv3,默认是 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

至此完成部署。

`