卸载设备或资源繁忙; 已经尝试过:mount,lsof,fuser,exportfs,ps axf

作为虚拟机自动创build系统的一部分,块设备被挂载到临时文件夹(/ tmp / whatever)。 各种脚本在第一次运行之前安装和configuration虚拟机。

最近有些事情发生了变化,临时安装繁忙,拒绝卸载。 在试图确定什么可能仍然保持文件打开我已经检查:

testing以root身份运行

  • 安装
  • lsof | grep / tmp /
  • fuser -m / tmp / …
  • exportfs -rv
  • 重新启动运行创build脚本的守护进程
  • ps axf
  • dmsetup表
  • losetup -a
  • fuser -vm /tmp/tmp.random-chars/(产生两行)
    • 用户PID访问命令
    • /tmp/tmp.random-chars:根内核挂载/tmp/tmp.random-chars

上述testing都没有结果指向文件系统使用,但是umount -f仍然抱怨“设备或资源忙”/“设备正忙”。

我应该尝试做什么其他的testing,以便我能够find真正的根本原因,并希望能够在不重新启动系统的情况下修复卡住的挂载现在不能重新启动一段时间,并防止重新发生?

这也是/怀疑/(但我不知道如何检查)来自临时安装的内核模块被加载,因为临时安装具有与主机运行的不同版本的Linux。

编辑

  • 从各种search结果看来,/ modules /只是简单地读入内存。 我不知道内核是否可以打开文件以及如何访问这些列表。
  • 将“dmsetup / losetup”添加到“不显示问题的testing”列表中
  • 在freenode ## linux中build议使用fuser -vm

如果它是构build过程的一部分,我假设无论如何您都需要重启。 尝试插入一个“懒惰”卸载进程。 使用umount -l /tmp ,看看是否能帮助你在这个过程中克服这个障碍。

我们得到了同样的问题,但是只有当虚拟机的根文件系统是ext4时才会出现。 ext3正常工作。 我知道这听起来很奇怪,但可能是http://www.phoronix.com/scan.php?page=news_item&px=MTIxNDQ中描述的内核错误

如果是这样,我们必须等待内核补丁或避免在主机中安装新的虚拟机。 从临时的linux安装它作为虚拟机运行正常,因为在不重新启动主机的情况下重启机器。

你试过ext3吗? 如果没有,请尝试在ext3上安装,如果使用ext4是关键的话,可以将其转换为ext4(在http://www.debian-administration.org/article/643/Migrating_a_live_system_from_ext3_to_ext4_filesystem中对此进行了介绍)

umount失败的一个原因是远程设备的基础IP地址已经改变。

我从桌面服务器上远程安装笔记本电脑时看到过这种情况。 第一次挂载是通过IP地址A进行的。虽然重新启动笔记本电脑给了它地址B,但是我的桌面继续将地址Alogging为笔记本电脑的地址。 当我查看mount命令返回的IP地址并将其与笔记本电脑的当前地址进行比较时,我可以看到这一点。

  • 我能够使用umount -l卸载
  • 对于这个问题的解决scheme – 对我来说 – 为笔记本电脑使用一个固定的IP地址