首页/系统/Linux 运维命令速查/bind mount 目录绑定挂载
磁盘与文件系统51 条

bind mount 目录绑定挂载

把一个已存在目录挂到另一个路径(--bind):容器给宿主目录、chroot 环境、日志多路径访问都常用;/etc/fstab 里可持久化。

Linux 运维命令速查系统更新于 2026-10-13

bind mount 是什么

bind mount 把一个已经存在的目录挂载到另一个路径上,让同一份数据通过两个入口被访问。容器把宿主机目录挂进容器、chroot 环境补齐 /proc 与设备节点、日志需要多路径访问时都会用到。它只改变挂载视图,不复制数据,因此不会额外占用磁盘空间。

基本信息

用途把同一目录挂载到多个路径
语法mount --bind 源目录 目标目录
持久化在 /etc/fstab 中写 bind 选项
相关命令findmnt 查看绑定关系、umount 解除绑定

典型使用场景

  • 容器或 chroot 环境里把宿主机目录暴露到指定路径
  • 应用只认固定路径时,把真实数据目录绑定过去
  • 日志分散在不同分区时统一到同一路径查看
  • 迁移期间让新旧路径同时可访问,便于灰度
  • 只读暴露配置目录,防止应用误改
  • 沙箱环境里限制可见的目录范围

临时绑定与持久化

临时绑定与持久化
sudo mkdir -p /srv/appdata           # 目标挂载点必须先存在
sudo mount --bind /data/app /srv/appdata
findmnt /srv/appdata                 # 确认绑定关系
sudo mount -o remount,ro,bind /srv/appdata   # 只读 bind 的正确写法
sudo mount --rbind /data /srv/alldata        # 递归绑定,包含子挂载
sudo umount /srv/appdata             # 卸载的是目标侧
/data/app  /srv/appdata  none  bind  0 0     # fstab 持久化写法
sudo mount -a                        # 应用 fstab 配置

写法与含义

写法含义常见问题
mount --bind普通绑定源目录后来新增的挂载不会跟随
mount --rbind递归绑定包含源下已有的子挂载
bind,ro只读绑定需配合 remount,单独写 ro 不生效
fstab 中的 bind 项开机自动绑定要确保源与目标都存在
umount 目标路径解除绑定卸载源路径会失败或误卸真实挂载
绑定之后,源目录如果又新增了挂载(例如下面挂了新分区),默认不会自动出现在绑定点上;确实需要跟随变化就改用 --rbind。
想说只读必须用 bind,ro 组合,或者先绑定再 remount,ro:单独写 ro 不会生效,容易产生「以为只读其实可写」的错觉。
卸载绑定点要卸载目标路径;对源路径执行 umount 会失败,某些场景下还会误卸真实挂载,操作前先用 findmnt 看清挂载关系。

易错点

  • 只写 ro 就以为只读生效:实际仍可写入,防护形同虚设
  • umount 绑定的源路径:卸载失败或误卸真实挂载,可能影响正在运行的服务
  • fstab 写了 bind 却没保证源存在:开机挂载失败,依赖它的服务起不来
  • 用 bind 代替数据迁移:源目录一旦被删除或改名,绑定视图也随之失效

数据来源与参考

  • man 8 mount(--bind/--rbind)
  • man 5 fstab

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌