卸载磁盘时报错:’Umount Target is Busy’
发布时间:2023-05-07 07:16:11 来源:清一色财经

我们介绍的三种方法中,我更倾向于使用第一种方法,即直接杀掉占用磁盘的进程。当然大家可以根据各自实际情况选择合适的方法。

在 Linux 命令行中卸载磁盘并不复杂,只需要执行 umount 命令即可:


(资料图片)

umount target

但有时候可能会遇到报错信息,比如:umount: target is busy

那么该怎样解决这个问题呢?

在介绍如何解决问题之前,我们先来了解一下产生这个问题的原因。

Umount target is busy 错误产生的原因

原因很简单,要卸载的目标设备还仍在使用中。

如果有足够的权限,任何进程都可能正在使用你即将要卸载的驱动器。为了防止数据丢失,所以系统内核不允许你将其卸载。

那么怎么解决这个问题呢?

提示:如果后台正在进行数据传输,可能会因为强制卸载驱动器而造成数据丢失。

基于某种原因,有时候我们需要强制卸载驱动器。比如因某种原因造成的驱动器没有相应。强制卸载驱动器有多种方法,比如:

杀掉进程;使用强制卸载(force unmount)使用延迟卸载(lazy unmount)

我们先来看看第一种方法。

方法1:通过杀掉进程来强制卸载驱动器

这应该是强制卸载磁盘驱动器的最佳方式,因为不管怎样,你都会杀掉这个进程。

首先第一步是要找到造成该问题的​​进程的 PID​​。可以使用 lsof 命令,如下所示:

sudo lsof /Path/to/target

找到 pid 后,要​​终止这个进程​​就很简单了:

sudo kill -9 [PID]

终止进程后,再次执行磁盘驱动器 umount 命令就可以了:

方法2:强制卸载(适用于网络文件系统 Network file systems)

当处理网路文件系统的时候,强制卸载是遇到 ‘umount: target is busy’ 问题时首选的方法。但是对于本地文件系统,其结果可能会不一样。

强制卸载磁盘,可以使用 umount 命令的 -f 选项,如下所示:

sudo umount -f /Path/to/target

方法3:使用延迟卸载(lazy unmount)

该方法不会立刻卸载目标,而只是将其从命名空间中删除掉。当目标驱动器不被使用的时候,再将其卸载掉。使用这个方法,你可能无法确定目标是否已经被卸载掉,这就像薛定谔的卸载。我们之所以介绍这种方法,是因为它是最柔和(无害)的一种方法。

使用延迟卸载,可以在 umount 命令中添加 -l 选项,如下所示:

sudo umount -l /Path/to/target

上述我们介绍的三种方法中,我更倾向于使用第一种方法,即直接杀掉占用磁盘的进程。当然大家可以根据各自实际情况选择合适的方法。

标签: