卸载磁盘时报错:‘Umount Target is Busy‘

系统Linux

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

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

复制

umount target
  • 1.

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

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

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

Umount target is busy 错误产生的原因

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

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

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

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

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

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

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

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

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

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

复制

sudo lsof /Path/to/target
  • 1.

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

复制

sudo kill -9 [PID]
  • 1.

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

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

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

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

复制

sudo umount -f /Path/to/target
  • 1.

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

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

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

复制

sudo umount -l /Path/to/target
  • 1.

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

  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值