在 Linux 上,我有一个使用选项挂载的文件-o loop
。我想卸载它。但是它告诉我device is busy
。但是这样做lsof | grep pathofimagefile
没有得到任何结果。但我无法卸载!
答案1
我相信这就是定影器是。具体来说,fuser -km /path/to/mount/point
请注意,该-k
标志会终止在此文件系统上打开文件的进程。您可以忽略此标志以先查看列表。
答案2
在您的问题中,您写道grep pathofimagefile
。您尝试过吗grep pathofmountpoint
?
还要验证您的机器上运行的进程是否未将您的挂载点(或其子目录)设置为其当前工作目录。
sudo ls -l /proc/*/cwd | grep pathofmountpoint
将为您提供这些进程编号。
答案3
哇,这确实很古老,但为了让那些将来发现它的人受益,以下是我发现的——我有嵌套的坐骑。也就是说,我在 /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.
——诺亚·斯普里尔
答案4
我遇到了同样的问题。该目录不仅使用 挂载-o loop
,而且还使用 命令将其导出到 NFS exportfs
。 fuser
和lsof
都表示该设备未在使用中。此外, 也exportfs -u
没有任何抱怨。但是,NFS 仍在 /proc/fs/nfs/exports 中显示该设备。我重新启动了 nfs 并得到以下信息:
关闭 NFS mountd: [ 确定 ] 关闭 NFS 守护进程:[确定] 关闭 NFS 服务:[失败] 启动 NFS 服务:[确定] 启动 NFS 配额:[确定] 启动 NFS 守护进程:[确定] 正在启动 NFS mountd: [ 确定 ]
然后,我可以卸载设备。不幸的是,这很难重现。也许有人可以提供更多见解。