卸载 rbind 挂载而不影响原始挂载

卸载 rbind 挂载而不影响原始挂载

还有另一种问题讨论卸载 rbind 挂载,但解决方案却产生了不良影响。请考虑以下目录布局:

.
├── A_dir
│   └── mount_b
├── B_dir
│   └── mount_c
└── C_dir

现在我绑定C_dirB_dir/mount_c并重新绑定B_dirA_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_cumount 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_bB_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,然后您就可以弹出它。

相关内容