安装后似乎无法卸载dev
。我正在继续Ubuntu 18.04.2 LTS
使用4.15.0-1052-aws
.
mkdir -p ~/jail/dev
pushd ~/jail
sudo mount --rbind /dev dev/
sudo umount dev/
umount: /home/ubuntu/Code/conversations/jail/dev: target is busy.
有什么方法可以在不重新启动机器的情况下卸载它?
或者,有没有办法可以安装它以便更容易卸载?
更新:这是输出lsof /home/ubuntu/Code/conversations/jail/dev
:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
kdevtmpfs 55 root cwd DIR 0,6 2980 2 dev
kdevtmpfs 55 root rtd DIR 0,6 2980 2 dev
为了安全起见,第一个命令是必需的。它将阻止第二个命令卸载原始
/dev
目录中的子目录。这是由于“安装传播”。第二个命令递归地卸载整个树。
dev/pts
例如,这可以确保在尝试卸载之前卸载dev/
。这就是导致“目标正忙”错误的原因。作为优化,您可以使用
umount -l
而不是umount -R
. 这在拆卸整个绑定安装树时可能很有用。绑定挂载上的 `umount -R` 花费了不可忽略的时间,为什么?
但是,如果它们不仅仅是绑定挂载或虚拟文件系统,则需要小心。已打开文件的程序通常仍然可以访问它们。在他们关闭它们之前,文件系统仍然是打开的。但是,文件系统会立即“分离”。它不会再弄乱命名空间了。它不会出现在
findmnt
等等。这意味着您无法轻易判断底层设备何时“可以安全移除”。