在服务器故障时被询问,但没有引起足够的重视,因此在此处重新发布,希望这里的某些人知道答案。
关于卸载rbind挂载,还有另一个问题在讨论,但是该解决方案产生了不良影响。请考虑以下目录布局:
.
├── A_dir
│ └── mount_b
├── B_dir
│ └── mount_c
└── C_dir
现在我将绑定C_dir
到B_dir/mount_c
和rbind 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
也会unmount 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
?
编辑:这个问题似乎没有出现在Ubuntu中。更具体地说,它可以在我的Ubuntu 14.04上正常运行,但不能在Fedora 23和CentOS 7上运行。为什么会有区别,Fedora和CentOS的工作原理是什么?
编辑:关于我要解决的实际问题的更多信息。我试图创建一个沙箱,并用于--rbind
将/dev
和挂载/proc
到沙箱。销毁沙箱时,似乎无法彻底销毁它,因为<sandbox-root>/dev/pts
在FC23和CentOS7中卸载将被卸载/dev/pts
,然后我的shell和SSH连接挂起,必须重新启动计算机。这就是为什么我要问是否有一种方法可以在不影响子安装的情况下卸载--rbind安装。