好的,事情是这样的:
我使用 FUSE 将 webdav 端点挂载为文件系统。在某个时候它坏了。现在,无论如何我都无法卸载它。
任何时候我尝试以任何方式与其交互,一切都会冻结。列出 ( ls
) 包含挂载点的目录会使我的 shell 不可恢复地冻结。
我尝试过umount -f
(force)、umount -l
(lazy)、umount -lf
(lazy force) 和fuser -km
(正如我在其他地方看到的推荐) 全部以 root 身份运行... 没成功。每次我运行这些命令中的任何一个,它们都会挂起,直到我杀死^C
它们 ( )。
不应有任何进程在此挂载上保持句柄打开。我尝试使用 lsof 检查。它也挂起了。
我不在乎是否必须编译一个内核模块来修补这个内存不足的东西......我需要一种方法来解决这个问题。
我花了一小时搜索 Google 和 Stackoverflow。一切都只是重复同一句老话:umount -f
和umount -l
。有谁知道真正强制卸载文件系统的方法吗?
(Debian 6.0.9,内核 2.6.32-5)
答案1
您可以尝试以下另一个命令,但如果情况很糟糕,这可能也无济于事。
fusermount -u /path/to/mountpoint
答案2
对于 davfs 我发现:
fusermount -uz /path/to/mountpoint
(延迟卸载)有效。如果此时重新挂载,您可能会收到有关 PID 文件的错误,因此请将其删除,然后重试挂载:
rm /var/run/mount.davfs/mountpoint.pid
mount /path/to/mountpoint