还有另一种问题讨论卸载 rbind 挂载,但解决方案却产生了不良影响。请考虑以下目录布局:
.
├── A_dir
│ └── mount_b
├── B_dir
│ └── mount_c
└── C_dir
现在我绑定C_dir
到B_dir/mount_c
并重新绑定B_dir
到A_dir/mount_b
:
[hidden]$ sudo mount --bind C_dir B_dir/mount_c
[hidden]$ sudo mount --rbind B_dir A_dir/mount_b
[hidden]$ mount | grep _dir | wc -l
3
现在umount A_dir/mount_b
会失败,这并不奇怪。根据网上到处可见的答案,我们需要umount A_dir/mount_b/mount_c
先umount A_dir/mount_b
。但是,umount A_dir/mount_b/mount_c
也会卸载B_dir/mount_c
,这是不需要的:
[hidden]$ sudo umount A_dir/mount_b/mount_c
[hidden]$ mount | grep _dir | wc -l
1
现在我的问题是,如何卸载A_dir/mount_b
但B_dir
不受影响,即仍然B_dir/mount_c
绑定C_dir
?
谢谢。
答案1
找到了。 https://unix.stackexchange.com/a/276700/29483
尝试--make-rprivate
:
mount --make-rprivate A_dir
umount -R A_dir
注意:将您描述的行为设置为新默认行为的 systemd 人员建议您最初不要将 rbind 挂载设为私有。不过,在卸载之前这样做是可以的。
这是因为当您克隆所有挂载时,您可能需要弹出 CD。如果它是在克隆时挂载的,则启用传播意味着您只需在一个位置(例如,在 rbind 挂载之外,就像平常一样)运行 umount,然后您就可以弹出它。