由于"设备或资源繁忙而导致rmdir失败"

时间:2015-09-06 14:34:48

标签: linux filesystems

有很多类似的问题,例如"设备或资源繁忙"。但我认为我的问题与他们不同。

我使用mount --bind来绑定目录

mount --bind /tmp/origin /tmp/mount

然后可以成功卸载

umount /tmp/mount

然后如果我立刻给rm打电话

rm -rf /tmp/mount

我可能会收到错误Device or resource busy。如果我等待2~3秒,然后拨打rm,那就可以成功。

所以这种行为在这里很奇怪。我尝试使用

lsof +D /tmp/mount

看不到任何东西。

我也使用fuser -vm /tmp/mount,看不到任何进程保留此文件夹。

我比较/proc/mounts之前和umount /tmp/mount之后的umount /tmp/mount/tmp/mount已被删除。

我比较stat /proc/mounts之前和umount /tmp/mount之后的umount /tmp/mount。 inode也不同,这意味着/tmp/mount已经删除了完整。

即使我调用sync && echo 2 > /proc/sys/vm/drop_caches并尝试删除文件缓存,它仍然无效。

我在Ubuntu 14.04和CentOS 6.6中尝试了这个。他们有相同的结果。

3 个答案:

答案 0 :(得分:7)

我遇到这样的问题,因为我在VM中挂载共享文件夹,我想在卸载后删除目录,我只是想分享我的解决方案。

  1. 卸载路径

    sudo umount /your_path
    
  2. 删除/ etc / fstab中的mout路径

    sudo nano /etc/fstab
    
  3. 重新启动

    sudo reboot
    
  4. 删除目录

    sudo rm -rf /your_path
    

答案 1 :(得分:-1)

  • 检查

    df -h
    
  • 然后

    sudo umount /path
    

答案 2 :(得分:-1)

请按照以下步骤操作:

  1. 打开资源监视器

  2. 单击“关联的句柄”下拉框

  3. 搜索文件夹创建问题

  4. 右键单击每个进程,然后单击“结束进程”。

现在您可以删除文件夹