mount --bind 实现路径镜像,不复制数据、不依赖文件系统类型,仅在vfs层映射;需手动创建目标目录,临时挂载重启失效,持久化须写入/etc/fstab并用none bind格式,递归绑定需--rbind。

直接用 mount --bind 就能实现,核心是“路径镜像”,不复制数据、不依赖文件系统类型,只在 VFS 层做映射。
立即生效的临时绑定
这是最常用的方式,适合调试、测试或短期需求:
- 目标目录必须提前存在,例如:
mkdir -p /mnt/shared - 执行绑定命令:
sudo mount --bind /home/user/data /mnt/shared - 之后访问
/mnt/shared就等同于访问/home/user/data,所有读写操作实时同步 - 该挂载仅当前运行有效,重启后自动消失
开机自动挂载(持久化)
要让绑定在每次启动时都生效,需写入 /etc/fstab:
- 在文件末尾添加一行:
/home/user/data /mnt/shared none bind 0 0 - 注意:源和目标都必须是绝对路径;第三列填
none;第四列必须是bind,不能写defaults - 添加后运行
sudo mount -a测试语法是否正确,无报错即配置成功
处理子挂载点(递归绑定)
默认 --bind 只映射目录本身,不包含其下已有的挂载点(如 tmpfs、其他 bind mount):
- 若需一并映射所有嵌套挂载,改用
--rbind:sudo mount --rbind /var/lib/docker /backup/docker - 常见于容器备份、chroot 环境或完整挂载树迁移场景
- 对应 fstab 中写法相同,只是选项改为
bind,rbind(如:none bind,rbind 0 0)
权限与卸载注意事项
绑定挂载本身不改变原始权限,但可通过挂载选项或后续设置控制访问行为:
- 加
-o ro实现只读映射:sudo mount --bind -o ro /data/configs /srv/app/configs - 卸载用标准
umount命令,推荐卸载目标路径:sudo umount /mnt/shared - 若提示 “device busy”,先检查是否有进程正在使用该路径(
lsof +D /mnt/shared),再考虑加-l异步卸载











