在 CentOS 里,“共享挂载”(shared mount)通常指 mount namespace 中的挂载传播(mount propagation),也就是让某个挂载点在多个地方(或容器、进程)之间自动同步挂载/卸载。
下面从 概念 → 查看 → 设置 → 示例 系统讲一下。
Linux 挂载传播有 4 种类型:
| 类型 | 说明 |
|---|---|
shared |
挂载/卸载会传播到其他 shared 挂载点 ✅ |
private |
完全独立,不传播 ❌ |
slave |
只接收 shared 的变更,自己不传播 |
unbindable |
private + 不能被 bind mount |
共享挂载 = 把一个目录用 shared 方式挂载,多处同步
findmnt -o TARGET,PROPAGATION
或看某个挂载点:
mount | grep /mnt
示例输出:
/mnt/test shared
mount --make-shared /mnt/test
或新建挂载时直接指定:
mount --bind --make-shared /data /mnt/test
mkdir /mnt/test2
mount --bind /mnt/test /mnt/test2
此时:
/mnt/test 里 mount 一个设备/mnt/test2 会自动看到 ✅mkdir -p /a /b
mount --bind --make-shared /data /a
mount --bind /a /b
在 /a 里:
mount /dev/sdb1 /a/usb
/b/usb 立刻可见。
Docker 默认是 slave
如果你想让宿主机挂载变化同步进容器:
mount --make-shared /mnt
docker run -v /mnt:/mnt ...
mount --make-shared /mnt
/data /mnt/test none bind,shared 0 0
或用 x-systemd:
/data /mnt/test none bind,x-systemd.make-shared 0 0
❌ 父目录是 private,子目录无法 shared
✅ 先:
mount --make-shared /
❌ NFS / 某些文件系统不支持
✅ 用 bind 中转
CentOS 共享挂载 =
mount --make-shared+bind mount
如果你指的是:
告诉我具体场景,我可以给你更精确的命令。