MacOS自动挂载nfs服务器共享目录

MacOS自动挂载nfs服务器共享目录

这是一篇关于如何使用MacOS automount命令,来自动挂载远程文件系统的技巧。需要读者对OS X命令行有一定了解。

一、为什么要使用automount呢

我们看看鸟哥是怎么描述的:

在一般 NFS 文件系统的使用情况中,如果客户端要使用服务器端所提供的 NFS 文件系统时,要嘛就是得在 /etc/rc.d/rc.local 当中设定开机时挂载,要嘛就得要登入系统后手动利用 mount 来挂载。 此外,客户端得要预先手动的建立好挂载点目录,然后挂载上来。但是这样的使用情况恐怕有点小问题。

我们知道 NFS 服务器与客户端的联机或许不会永远存在,而 RPC 这个服务又挺讨厌的,如果挂载了 NFS 服务器后,任何一方脱机都可能造成另外一方老是在等待逾时~而且,挂载的 NFS 文件系统可能又不是常常被使用,但若不挂载的话,有时候紧急要使用时又得通知系统管理员, 这又很不方便...啊!好讨厌的感觉啊~@_@

所以,让我们换个思考的角度来讨论一下使用 NFS 的情境:

  • 可不可以让客户端在有使用到 NFS 文件系统的需求时才让系统自动挂载?
  • 当 NFS 文件系统使用完毕后,可不可以让 NFS 自动卸除,以避免可能的 RPC 错误?

如果能达到上述的功能,那就太完美啦!有没有这东西呢?有的,在现在的 Linux 环境下这是可以达成的理想!用的就是 autofs 这个服务啦!

二、进入正题 - 我们看MacOS上是如何设置的:

1)创建本地挂载点

首先,需要创建一个由automount服务管理的本地目录。所有远程文件系统都将出现在这个目录下,它充当automount服务的触发器。我将这些远程文件系统保在/Users/jamesding/nfs目录下。需要使用sudo来创建目录。

注:从Catalina开始,根文件系统现在是只读的。我已经将挂载点移动到用户可写的文件系统/系统/卷/数据:

$ sudo mkdir /Users/jamesding/nfs

2)修改master映射

自动挂载进程读取文件/etc/auto_master以检索它应该控制的目录列表。我已经将我的资源映射放在一个单独的映射文件/etc/auto_nfs中。将/Users/jamesding/nfs添加到auto_master文件中,如下:

#
# Automounter master map
#
/Users/jamesding/nfs auto_nfs
+auto_master		# Use directory service
#/net			-hosts		-nobrowse,hidefromfinder,nosuid
/home			auto_home	-nobrowse,hidefromfinder
/Network/Servers	-fstab
/-			-static

配置好之后,每当你访问/Users/jamesding/nfs的任何目录,automount进程都会自动检查auto_nfs映射文件,并决定是否需要自动挂载远程文件系统。

3)创建资源映射文件

假设我们已经在远程服务器上,配置好了一个远程文件系统,它的路径是 /data 。

我们决定把它挂载到MacOS上,名字为dell_server_harddisk_data。

为了任何时候访问/Users/jamesding/nfs/dell_server_harddisk_data这个目录,MacOS能自动挂载远程服务器上共享的 /data,我们需要在/etc/auto_nfs文件里面添加映射关系数据,如下:

dell_server_harddisk_data -rw,bg,soft,rsize=32768,wsize=32768 172.16.47.96:/data

4)使配置生效

$ sudo  automount -vc

5)其他可选的配置

可以在/etc/autofs.conf配置文件中更改其他选项。比较常用的选项是挂载超时时间。如果该文件系统一段时间内没有任何访问,系统就会将它卸载。在MacOS附带的/etc/autofs.conf中默认设置为1小时(3600秒)

# The number of seconds after which an automounted file system will
# be unmounted if it hasn't been referred to within that period of
# time.  The default is 10 minutes (600 seconds).
# This is equivalent to the -t option in automount(8).
AUTOMOUNT_TIMEOUT=3600

6)与Finder的兼容

需要注意的是,以这种方式自动加载的文件系统,不会自动显示在Finder的侧栏中。它们也不会自动以磁盘图标的形式出现在桌面上。

我个人推荐的技巧是,将/Users/jamesding/nfs这个文件夹添加到 个人收藏 里

全文完。

编辑于 2020-11-12 17:44