按需挂载是什么
systemd 的自动挂载由一对单元配合实现:描述挂载点的单元负责真正的挂载动作,自动挂载单元负责在指定路径上设置一个触发器。平时该路径并没有挂上存储,只有在进程访问这个路径时才触发挂载,空闲一段时间后再自动卸载。适合不常用但需要保留访问入口的存储,例如备份盘、冷数据卷。
基本信息
| 适用平台 | systemd 发行版(单元名以路径为基础命名) |
|---|---|
| 实现方式 | 自动挂载单元与对应的挂载单元成对使用 |
| 关键参数 | 触发路径、空闲卸载时间、目录权限 |
| fstab 写法 | 在挂载项里加上按需挂载相关选项即可由系统自动生成单元 |
典型使用场景
- 备份盘平时不挂载,备份脚本访问路径时才自动挂上
- 外接大容量存储按需启用,避免常驻占用与误删除
- 网络共享在访问时才建立连接,减少空闲长连接
- 多台机器共用同一套挂载策略,用单元统一管理
- 排查访问某个目录时命令卡住,确认是否触发了自动挂载
单元示例
单元示例
# /etc/systemd/system/data.automount
[Unit]
Description=Automount data volume
[Automount]
Where=/data
TimeoutIdleSec=10min # 空闲十分钟后自动卸载
[Install]
WantedBy=multi-user.target
# 另需 /etc/systemd/system/data.mount 描述真实挂载,切勿单独启用它启用与检查
启用与检查
sudo systemctl daemon-reload
sudo systemctl enable --now data.automount # 启用自动挂载单元
systemctl status data.automount # 确认触发器已就绪
ls /data && findmnt /data # 访问后确认已挂载
systemctl list-units --type=automount # 列出所有自动挂载单元
findmnt -o TARGET,SOURCE,FSTYPE /data # 核对实际来源参数读法
| 参数 | 作用 | 注意 |
|---|---|---|
| Where | 触发器监听的路径 | 必须与挂载单元描述的路径一致 |
| TimeoutIdleSec | 空闲多久后自动卸载 | 设得过短会导致频繁挂载卸载 |
| 挂载单元内容 | 真实挂载参数与来源 | 不要单独启用挂载单元 |
| 目录权限相关参数 | 自动创建目录时的权限 | 影响访问者能否进入该路径 |
在挂载配置里加按需挂载选项,系统会自动生成对应的自动挂载单元,比手写两份单元更省事,也便于统一管理。
使用建议
- 命名与路径保持一致,避免单元之间对不上号
- 空闲卸载时间根据访问规律设置,不宜过短
- 启用后先用访问动作验证确实会自动挂载
- 检查挂载来源与预期一致,避免挂到别的设备
- 用状态命令确认触发器的启用状态与最近活动
空闲卸载后如果仍有进程的工作目录停留在该路径上,访问会被重新触发挂载,排查卡顿时要把这一点考虑进去。