umount:目标正忙

umount:目标正忙

我已经安装/dev并立即尝试卸载:

$ sudo mount -o rbind /dev m
$ sudo umount m
umount: /tmp/m: target is busy.
$ sudo lsof m
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
      Output information may be incomplete.
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
kdevtmpfs  55 root  cwd    DIR    0,6     4420    2 m
kdevtmpfs  55 root  rtd    DIR    0,6     4420    2 m

我读过fuser可以杀死访问挂载点的进程,但我想了解在这个简单的情况下发生了什么。根据lsof输出,是否有人使用挂载点作为当前工作目录(cwd)?

我不想使用延迟卸载。

答案1

您曾经rbind挂载文件系统和子挂载。为了卸载文件系统,必须首先卸载其子安装(其子安装也是如此,递归地)。但要小心!

mount --make-rslave m
umount -R m

如果没有第一个命令,您将面临卸载所有子安装的风险来源,由于安装传播。在这种情况下,这意味着 的所有子安装/dev,这会对您正在运行的系统产生不良影响;-)。

基本上,挂载传播是一个巨大的陷阱,等着你掉进去:-)。如果默认情况下绑定安装禁用它,似乎会更好。


kdevtmpfs是维护devtmpfs的内核线程。它不会阻止卸载 devtmpfs。这是因为内核线程在单独的安装上运行(如绑定安装)。你看不到原来的坐骑;它位于单独的安装命名空间中。如果您想尝试找出为什么kdevtmpfs出现在 中lsof,我不知道,也许可以将其视为一个单独的问题。

相关内容