不能卸载循环支持的文件,但没有打开的文件?

linux上,我有一个使用-o loop选项挂载文件。 我想卸载它。 但它告诉我, device is busy 。 但是通过做lsof | grep pathofimagefile lsof | grep pathofimagefile我没有得到任何结果。 但我不能卸载!

我相信这是熔断器的用途。 具体来说, fuser -km /path/to/mount/point – 请注意, -k标志会杀死在此文件系统上打开文件的进程。 您可以省略此标志首先查看列表。

在你的问题中,你写了grep pathofimagefile 。 你用grep pathofmountpoint尝试过吗?

同时validation您的机器上没有运行的进程将您的安装点(或其子目录)设置为其当前工作目录。

sudo ls -l /proc/*/cwd | grep pathofmountpoint sudo ls -l /proc/*/cwd | grep pathofmountpoint会给你这些进程号码。

哇,这真是太老了,但是为了让未来的人们有所收获 ,这里就是我发现的 – 我嵌套了坐骑。 也就是说,我在/ mnt上挂载了一个环回设备的根文件系统镜像。 在那个挂载点下,我安装了安装在/ mnt / proc和/ mnt / sys下的proc和sysfs文件系统。 后来我忘了proc和sysfs文件系统试图卸载文件系统映像时。

 # mount -o loop rootfs_disk.img /mnt # mount proc /mnt/proc -t proc # mount sysfs /mnt/sys -t sysfs # # ... ages pass # umount rootfs_disk.img umount: /mnt: device is busy. # umount /mnt umount: /mnt: device is busy. 

– 诺亚Spurrier

确保你没有安装目录中的开放shell。 我从来没有看过,看是否显示在LSF或不。 另外当做你的LSF尝试在安装点而不是图像文件本身。

我有同样的问题。 该目录不仅使用-o loop挂载,而且使用exportfs命令将其导出到NFS。 fuserlsof都表示设备未被使用。 另外, exportfs -u没有任何投诉。 但是,NFS仍然在/ proc / fs / nfs / exports中显示设备。 我重新启动nfs并得到这个:

closuresNFS挂载:[确定]
closuresNFS守护进程:[OK]
closuresNFS服务:[FAILED]
启动NFS服务:[确定]
启动NFS配额:[确定]
启动NFS守护进程:[OK]
启动NFS挂载:[确定]

然后,我可以卸下设备。 不幸的是,这是很难重现。 也许有人可以提供更多的见解。

我刚刚有同样的问题,卸载不会卸载我的循环设备。 奇怪的是,lsof和fuser都不能find使用该挂载点的任何进程。 lsof只发现[loop0]内核线程,我试图杀死它(即使-9),但没有成功。

真正想知道的是,在等了几分钟后(尝试了umount -f / mnt等之后 – 不起作用),我又试了一次,瞧,现在效果如何呢?

我不确定,但也许内核本身不能释放loop0线程一段时间,但后来它可以closures它? 谁知道…

所以底线是:尝试一遍又一遍地重复,在一段时间后,你可以有运气:-)

运行pwd …你的terminal仍然坐在pathofimagefile ? 如果这样移出pathofimagefile ,然后重新执行umount

关于什么:

 sudo lsof | grep loop