在 Debian 下,“共享挂载(shared mount)”通常是指 mount namespace 中的挂载传播(mount propagation)属性,也就是让某个挂载点在绑定挂载或子挂载时,能把挂载/卸载事件“传播”到其他地方(或反向传播)。
下面按常见需求给你说明。
Linux 挂载点有几种传播类型:
private:默认大多数情况,挂载事件不传播shared:挂载/卸载会传播到“对等”挂载点slave:只接收传播,不向外传播unbindable:不能被绑定挂载共享挂载常用于:
findmnt -o TARGET,PROPAGATION
或:
mount | grep -i shared
mkdir -p /mnt/shared
mount -t tmpfs tmpfs /mnt/shared
mount --make-shared /mnt/shared
验证:
findmnt -o TARGET,PROPAGATION | grep shared
mkdir -p /mnt/bind
mount --bind /mnt/shared /mnt/bind
如果 /mnt/shared 是 shared,那么:
mount -t tmpfs tmpfs /mnt/shared/test
在 /mnt/bind/test 也能看到。
编辑 /etc/fstab:
tmpfs /mnt/shared tmpfs defaults 0 0
但 fstab 不直接支持 propagation 参数,需要配合 mount -o 或启动脚本。
创建:
/etc/systemd/system/mnt-shared.service
内容:
[Unit]
Description=Make /mnt/shared shared
[Service]
Type=oneshot
ExecStart=/bin/mount --make-shared /mnt/shared
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
启用:
systemctl enable --now mnt-shared
mount --make-rshared /
⚠️ 危险操作,通常在容器初始化或容器中做,不建议直接在宿主机根目录执行。
❌ 绑定挂载后看不到内容
✅ 原挂载点必须是 shared 或 slave
❌ Docker 挂载不生效
✅ 宿主挂载点需是 shared
Docker 官方建议:
mount --make-shared /
(仅某些旧系统需要)
Debian 下“共享挂载”= 使用
mount --make-shared设置挂载传播属性,再通过 bind mount 共享。
如果你能说清楚你是:
我可以给你更精确的命令。