MacOS自动挂载NFS目录
最近用OMV搭建了NFS,希望可以通过外网访问,并且可以自动挂载到mac,在需要的时候可以随时访问。
通过以下配置可以达到这样两点:
- 让客户端在有使用到 NFS 文件系统的需求时才会自动挂载
- 当 NFS 文件系统使用完毕后,可以让 NFS 自动卸除,以避免可能的 RPC 错误
创建本地挂载点
首先,需要创建一个由automount服务管理的本地目录。所有远程文件系统都将出现在这个目录下,它充当automount服务的触发器。我将这些远程文件系统保在/Users/zhanghao/nfs目录下。需要使用sudo来创建目录。
注:从Catalina开始,根文件系统现在是只读的。我已经将挂载点移动到用户可写的文件系统/系统/卷/数据.
1 | $ sudo mkdir /Users/jamesding/nfs |
修改master映射
自动挂载进程读取文件/etc/auto_master以检索它应该控制的目录列表。我已经将我的资源映射放在一个单独的映射文件/etc/auto_nfs中。将/Users/zhanghao/nfs添加到auto_master文件中,编辑auto_master,添加/Users/zhanghao/nfs auto_nfs
,如下所示:
1 | # |
配置好之后,每当你访问/Users/zhanghao/nfs的任何目录,automount进程都会自动检查auto_nfs映射文件,并决定是否需要自动挂载远程文件系统。
创建资源映射文件
假设我们已经在远程服务器上,配置好了一个远程文件系统,它的路径是 /export/allanhao 。
我们决定把它挂载到MacOS上,名字为allanhao。
为了任何时候访问/Users/zhanghao/nfs/allanhao这个目录,MacOS能自动挂载远程服务器上共享的 /export/allanhao。需要在/etc下新建文件auto_nfs,如下:
1 | $ sudo touch auto_nfs |
在/etc/auto_nfs文件里面添加映射关系数据,如下:
1 | allanhao -rw,bg,soft,rsize=32768,wsize=32768 xxx.com:/export/allanhao |
使配置生效
1 | $ sudo automount -vc |
其他可选的配置
可以在/etc/autofs.conf配置文件中更改其他选项。比较常用的选项是挂载超时时间。如果该文件系统一段时间内没有任何访问,系统就会将它卸载。在MacOS附带的/etc/autofs.conf中默认设置为1小时(3600秒)
1 | # The number of seconds after which an automounted file system will |
与Finder的兼容
需要注意的是,以这种方式自动加载的文件系统,不会自动显示在Finder的侧栏中。它们也不会自动以磁盘图标的形式出现在桌面上。
我个人推荐的技巧是,将/Users/zhanghao/nfs这个文件夹添加到 个人收藏 里。