温馨提示×

centos mount怎样共享挂载

小樊
39
2026-10-23 15:05:22
栏目: 智能运维

在 CentOS 里,“共享挂载”(shared mount)通常指 mount namespace 中的挂载传播(mount propagation),也就是让某个挂载点在多个地方(或容器、进程)之间自动同步挂载/卸载。

下面从 概念 → 查看 → 设置 → 示例 系统讲一下。


一、什么是共享挂载(shared mount)

Linux 挂载传播有 4 种类型:

类型 说明
shared 挂载/卸载会传播到其他 shared 挂载点 ✅
private 完全独立,不传播 ❌
slave 只接收 shared 的变更,自己不传播
unbindable private + 不能被 bind mount

共享挂载 = 把一个目录用 shared 方式挂载,多处同步


二、查看当前挂载传播类型

findmnt -o TARGET,PROPAGATION

或看某个挂载点:

mount | grep /mnt

示例输出:

/mnt/test  shared

三、设置共享挂载(核心命令)

1️⃣ 把某个目录变成 shared

mount --make-shared /mnt/test

或新建挂载时直接指定:

mount --bind --make-shared /data /mnt/test

2️⃣ 把另一个地方 bind 到 shared 挂载

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 立刻可见。


✅ 场景:容器 / chroot 共享挂载

Docker 默认是 slave 如果你想让宿主机挂载变化同步进容器:

mount --make-shared /mnt
docker run -v /mnt:/mnt ...

五、临时 vs 永久

临时(重启失效)

mount --make-shared /mnt

永久(fstab)

/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

如果你指的是:

  • Samba / NFS 共享
  • Docker volume 共享
  • 多节点共享存储

告诉我具体场景,我可以给你更精确的命令。

0 踩