autofs 是什么
autofs 是内核支持的按需挂载机制:平时挂载点只保留一个空目录,真正访问时才建立挂载,闲置超时后自动卸载。它由用户态守护进程 autofs 驱动,配置分主映射(自动挂载的根,如 /etc/auto.master.d/*.conf)与各映射文件(具体子目录与来源)。适合 NFS 共享、移动介质、多用户家目录这类用不到就不该占着挂载和连接资源的场景。
基本信息
| 适用平台 | RHEL/CentOS/openEuler/麒麟/UOS 及 Debian 系 |
|---|---|
| 软件包 | autofs(需单独安装) |
| 主配置 | /etc/auto.master 或 /etc/auto.master.d/ 下的分片 |
| 映射文件 | 自定义路径如 /etc/auto.data |
| 生效方式 | systemctl reload autofs(改映射文件)或 restart(改主配置) |
典型使用场景
- NFS 共享按需挂载:应用不访问时不占 NFS 连接与句柄,避免服务端连接数被打满
- 多用户环境家目录:只在使用者登录时挂载其家目录,降低客户端资源占用
- 移动介质与光驱:插入后访问即挂载,拔出后自动卸载,减少手工 mount
- 信创迁移过渡期:Windows 共享用 cifs 类型按需挂载,访问时再校验凭据
- 集中挂载点整洁:上百个共享统一在 /data 下按需展开,替代一次性写满 fstab
配置与启用
配置与启用
# /etc/auto.master.d/data.conf(主映射分片)
/data /etc/auto.data --timeout=300 # 访问 /data 触发,闲置 300 秒卸载
# /etc/auto.data(映射文件:子目录 挂载选项 来源)
share1 -rw,soft,intr 10.0.0.50:/export/share1
share2 -fstype=cifs,username=smb,password=pass //10.0.0.60/pub
# 启用与验证
dnf install -y autofs && systemctl enable --now autofs
systemctl reload autofs # 改映射文件后重载
ls /data/share1 # 触发挂载;用 mount | grep data 确认配置项读法
| 字段 | 含义 | 说明 |
|---|---|---|
| 主映射第一列 | 挂载根目录 | 间接映射:写成 /data,子目录由映射文件定义 |
| 主映射第三列 | 全局选项 | 如 --timeout=300 指定闲置卸载秒数 |
| 映射文件第一列 | 子目录名 | 会被拼到挂载根下,如 /data/share1 |
| 映射文件第二列 | - 开头的选项 | 传给实际挂载的 mount 选项 |
| direct 模式 | 主映射写 /- | 映射文件里写完整绝对路径,用于固定挂载点 |
触发挂载依赖 autofs 服务运行:服务被停掉后挂载点会变成普通空目录,表现像共享丢了;重启服务会卸载闲置挂载点,正在被访问的目录不受影响。
cifs 映射里直接写明文口令会落在配置文件里,建议改用凭据文件并设 0600 权限。