如何真正强制卸载文件系统(无需手动调查为什么它很忙)

Vi.*_*Vi. 16 linux umount

如何在不调查 Linux 忙的情况下卸载 Linux 中的文件系统?

我想在一个命令中完成。它应该处理使用该文件系统、子挂载、容器 ( lxc-execute -n qqq <command>) 和所有其他东西的应用程序。

只是“卸载。没有异议!”。允许特殊的内核补丁或配置。

文件系统应该真正卸载,所以umount -l肯定不是一个选项。例如,for cryptsetup remove(BTW how to force force cryptsetup remove? Update: cryptsetup luksSuspend,但cryptsetup luksResume如果不是 LUKS 就不行)。

如何使该文件系统上的所有文件句柄无效?

我知道的唯一可靠的方法是通过 FUSE 挂载文件系统(卸载 FUSE 通常没有问题,因为我可以终止它的进程)。

PS已经知道安装fuserlsof | grepcat /proc/*/mounts | grep和过时的非工作“badfs补丁”。

Fre*_*Ben 5

umount --forceumount -f(等价的)

如果失败,则使用:

umount --lazyumount --l(等价的)

lazy ”选项将“立即将文件系统从文件系统层次结构中分离出来,并在文件系统不再繁忙时立即清除对文件系统的所有引用。(需要内核 2.4.11 或更高版本。)”它可能会 导致不稳定,但它将得到卸载的东西。任何使用该驱动器的程序都可能崩溃。


小智 0

umount -f
Run Code Online (Sandbox Code Playgroud)

可用于在文件系统繁忙时强制卸载。

  • 尝试“惰性卸载”,umount -l。它总是会卸载,但可能会产生不稳定的文件系统。 (4认同)
  • 它从来没有对我有用:“umount2:设备或资源繁忙”唯一的部分成功是当我尝试使用 badfs 补丁时。 (2认同)