修复 Linux 中的“Umount Target is Busy”错误

在 Linux 命令行中卸载磁盘并不复杂。 您所要做的就是使用 umount 命令:

umount target

但是偶尔,你会遇到一个错误,上面写着 ‘卸载:目标正忙’:

那么你应该如何解决这个问题呢?

那么,在解决这个问题之前,让我先分享一下这个问题背后的原因。

Umount target 忙的原因

原因很简单! 目标设备仍在使用中。

有了足够的权限,任何进程都可能正在使用您要卸载的驱动器,并且为了防止数据丢失,内核将不允许您卸载。

Linux 下Umount target is busy 如何解决

⚠️如果后台正在进行数据传输,您可能会因强行卸载驱动器而丢失数据。

有时您想要不惜一切代价卸载驱动器。 也许驱动器由于某种原因没有响应,而您想卸载它。

在本教程中,我将分享三种卸载目标的方法:

  • 通过杀死进程本身
  • 使用强制卸载
  • 使用惰性卸载

让我们从第一种方法开始。

在我看来,这是卸载目标的最佳方式,因为您最终会终止进程本身。

第一步是找到导致问题的进程的 PID。

为此,我将按以下方式使用 lsof 命令:

sudo lsof /Path/to/target

获得 PID 后,强制终止进程非常简单:

sudo kill -9 [PID]

现在,您应该可以轻松卸载驱动器了:

终止进程并卸载驱动器

非常整洁的方式。 不是吗?

方法 2:使用强制卸载(针对网络文件系统)

强制卸载选项主要是那些处理网络文件系统的人的首选。

所以 它可能不会为您提供本地文件系统的预期结果。

要使用强制卸载,您将不得不使用相同的旧 umount 命令,但与 -f 旗帜:

sudo umount -f /Path/to/target
使用force unmount解决target is busy错误

方法 3:使用惰性卸载(薛定谔卸载)

?这个选项实际上并没有卸载你的目标,只是从命名空间中删除了目标。 当不再使用驱动器时将卸载目标!

当您永远无法确定文件系统是否已卸载时,它更像是薛定谔的坐骑!

那么为什么我还要将它添加到解决方案列表中呢? 好吧,这是卸载顽固驱动器的最不有害的方法。

要使用惰性卸载,您必须使用 -l 标志与 umount 命令如图:

sudo umount -l /Path/to/target
linux下使用lazy unmount解决target is busy

在这里你有它!

你应该选择哪一个?

在您必须卸载驱动器的时候,我更愿意使用第一种方法,该方法涉及终止进程本身。

这是有充分理由的。 它让我的工作顺利完成。

当然,您可能希望根据您的用例选择最后两个选项中的任何一个。