autofs 默认情况下未安装在 openSUSE Leap 上。要使用其自动挂载功能,请首先使用以下命令安装它:
>sudozypper install autofs
您需要通过使用文本编辑器(例如 vim)编辑其配置文件来手动配置 autofs。配置 autofs 有两个基本步骤:主映射文件和特定的映射文件。
autofs 的默认主配置文件是 /etc/auto.master。可以通过更改 /etc/sysconfig/autofs 中的 DEFAULT_MASTER_MAP_NAME 选项的值来更改其位置。以下是 openSUSE Leap 的默认内容:
# # Sample auto.master file # This is an automounter map and it has the following format # key [ -mount-options-separated-by-comma ] location # For details of the format look at autofs(5).1 # #/misc /etc/auto.misc2 #/net -hosts # # Include /etc/auto.master.d/*.autofs3 # #+dir:/etc/auto.master.d # # Include central master map if it can be found using # nsswitch sources. # # Note that if there are entries for /net or /misc (as # above) in the included master map any keys that are the # same will not be seen as the first read key seen takes # precedence. # +auto.master4
| |
虽然默认情况下被注释掉 (#),但这是一个简单的自动挂载器映射语法的示例。 | |
如果您需要将主映射拆分为多个文件,请取消注释该行,并将映射(后缀为 | |
|
auto.master 中的条目具有三个字段,语法如下:
mount point map name options
要挂载 autofs 文件系统的基本位置,例如 /home。
用于挂载的映射源的名称。有关映射文件的语法,请参阅 第 23.2.2 节,“映射文件”。
这些选项(如果指定)将作为默认值应用于给定映射中的所有条目。
有关可选的 map-type、format 和 options 特定值的更详细信息,请参阅 手册页 (man 5 auto.master)。
auto.master 中的以下条目告诉 autofs 在 /etc/auto.smb 中查找,并在 /smb 目录中创建挂载点:
/smb /etc/auto.smb
虽然 文件 是使用 autofs 进行自动挂载的最常见类型的映射,但还有其他类型。映射规范可以是命令的输出,也可以是 LDAP 或数据库中的查询结果。有关映射类型的更详细信息,请参阅手册页 man 5 auto.master。
映射文件指定(本地或网络)源位置以及在本地挂载源的位置。映射的一般格式与主映射类似。不同之处在于,选项 出现在挂载点和位置之间,而不是条目末尾:
mount point options location
确保映射文件未标记为可执行。您可以执行 chmod -x MAP_FILE 来删除可执行位。
指定要挂载源位置的位置。这可以是单个目录名称(所谓的 间接 挂载),将其添加到 auto.master 中指定的基挂载点,也可以是完整路径的挂载点(直接挂载,请参阅 第 23.2.1.1 节,“直接挂载”)。
指定相关条目的可选逗号分隔的挂载选项列表。如果 auto.master 也包含此映射文件的选项,则这些选项将被附加。
指定要挂载文件系统的位置。通常是采用通常表示法 host_name:path_name 的 NFS 或 SMB 卷。如果要挂载的文件系统以 '/' 开头(例如本地 /dev 条目或 smbfs 共享),则需要添加冒号符号 ':',例如 :/dev/sda1。
本节介绍有关如何控制 autofs 服务操作的信息,以及如何在调整自动挂载器操作时查看更多调试信息。
autofs 服务的操作由 systemd 控制。 systemctl 命令的 autofs 一般语法是:
>sudosystemctl SUB_COMMAND autofs
其中 SUB_COMMAND 是以下之一:
在启动时启动自动挂载器守护进程。
启动自动挂载器守护进程。
停止自动挂载器守护进程。自动挂载点不可访问。
打印 autofs 服务的当前状态以及相关日志文件的一部分。
停止并启动自动挂载器,终止所有正在运行的守护进程并启动新的守护进程。
检查当前的 auto.master 映射,重新启动已更改条目的守护进程,并为新条目启动新的守护进程。
以下过程说明了如何配置 autofs 以自动挂载网络上可用的 NFS 共享。它使用了上述信息,并假定您熟悉 NFS 导出。有关 NFS 的更多信息,请参阅 第 22 章,使用 NFS 共享文件系统。
编辑主映射文件 /etc/auto.master
>sudovim /etc/auto.master
在 /etc/auto.master 的末尾添加一个新的条目:
/nfs /etc/auto.nfs --timeout=10
这告诉 autofs 基本挂载点是 /nfs,NFS 共享在 /etc/auto.nfs 映射中指定,并且此映射中的所有共享在 10 秒不活动后将自动卸载。
创建新的 NFS 共享映射文件:
>sudovim /etc/auto.nfs
/etc/auto.nfs 通常为每个 NFS 共享包含一行。其格式在 第 23.2.2 节,“映射文件” 中描述。添加描述挂载点和 NFS 共享网络地址的行:
export jupiter.com:/home/geeko/doc/export
以上行表示 /home/geeko/doc/export 目录在 jupiter.com 主机上将在请求时自动挂载到本地主机上的 /nfs/export 目录(/nfs 来自 auto.master 映射)。autofs 会自动创建 /nfs/export 目录。
如果之前以静态方式挂载了相同的 NFS 共享,请选择性地注释掉 /etc/fstab 中的相关行。该行应如下所示:
#jupiter.com:/home/geeko/doc/export /nfs/export nfs defaults 0 0
重新加载 autofs 并检查它是否有效:
>sudosystemctl restart autofs
# ls -l /nfs/export total 20 drwxr-xr-x 5 1001 users 4096 Jan 14 2017 .images/ drwxr-xr-x 10 1001 users 4096 Aug 16 2017 .profiled/ drwxr-xr-x 3 1001 users 4096 Aug 30 2017 .tmp/ drwxr-xr-x 4 1001 users 4096 Apr 25 08:56 manual/
如果可以看到远程共享上的文件列表,则 autofs 正在正常工作。
本节描述了超出 autofs 的基本介绍的主题——自动挂载网络上可用的 NFS 共享,在映射文件中使用通配符,以及与 CIFS 文件系统相关的特定信息。
如果使用大量的 NFS 共享,此辅助挂载点很有用。/net 会按需自动挂载本地网络上的所有 NFS 共享。该条目已存在于 auto.master 文件中,因此您只需取消注释它并重新启动 autofs 即可:
/net -hosts
>sudosystemctl restart autofs
例如,如果您有一个名为 jupiter 的服务器,其中包含名为 /export 的 NFS 共享,则可以通过键入以下命令来挂载它:
>sudocd /net/jupiter/export
在命令行中。
如果您有一个包含需要单独自动挂载子目录的目录——典型情况是包含个人用户主目录的 /home 目录——autofs 提供了一个巧妙的解决方案。
对于主目录,在 auto.master 中添加以下行:
/home /etc/auto.home
现在您需要在 /etc/auto.home 文件中添加正确的映射,以便自动挂载用户的家目录。一种解决方案是为每个目录创建单独的条目:
wilber jupiter.com:/home/wilber penguin jupiter.com:/home/penguin tux jupiter.com:/home/tux [...]
这非常麻烦,因为您需要在 auto.home 中管理用户列表。您可以使用星号 '*' 代替挂载点,并使用与符号 '&' 代替要挂载的目录:
* jupiter:/home/&
如果您想自动挂载 SMB/CIFS 共享(有关 SMB/CIFS 协议的更多信息,请参阅 第 21 章,Samba),您需要修改映射文件的语法。在选项字段中添加 -fstype=cifs,并在共享位置前加上冒号 ':'。
mount point -fstype=cifs ://jupiter.com/export