Linux 服务器 umount 数据盘提示:device is busy

  • A+
所属分类:Linux

问题现象


云服务器 ECS Linux 服务器上,卸载数据盘挂载时,有时会出现如下错误信息: device is busy

Linux 服务器 umount 数据盘提示:device is busy

问题原因


该报错通常是由于待卸载磁盘正在使用,导致无法直接卸载。需要将当前使用数据盘的进程杀掉,才能卸载。

处理方法


注:强制 kill 进程可能会导致数据丢失,请确保数据得到有效备份后,再进行相关操作。

使用 fuser 命令方式处理

如下图要卸载 /dev/xvdb1 这块磁盘报错:

Linux 服务器 umount 数据盘提示:device is busy

Linux 服务器 umount 数据盘提示:device is busy

这个是有程序正在使用此磁盘,可以用 fuser -vm /ceshi/  查看具体是哪个进程在占用,如下图所示:

Linux 服务器 umount 数据盘提示:device is busy

如图,查看到是 pid 为 24323 的 vsftpd 进程在占用磁盘。

关闭对应的服务或者杀掉对应的进程即可卸载:

  • 可以使用 fuser -km /dev/xvdb1/ 进行 kill 进程。
  • 可以使用 kill 命令杀掉查到对应的进程 。

另外可以尝试用强制卸载进行下操作,命令:

umount -l /dev/xvdb1 

 

使用 lsof 命令方式处理

这个是有程序正在使用此磁盘,可以用如下指令查询句柄情况:

lsof /dev/xvdb1

Linux 服务器 umount 数据盘提示:device is busy

查看到是 pid 为 24323 的 vsftpd 进程在占用。

参阅前述说明,关闭对应的服务或者杀掉对应的进程即可卸载。

shell 占用情况处理

该情况和上面 2 个处理的原理是一样的,只是处理的方法有点差别。

如下图使用 lsof 以及 fuse r查询,查看到是 pid 为 29858 的 bash 进程有相关调用:

Linux 服务器 umount 数据盘提示:device is busy

如图,是一个单独的进程 bash,通常是有用户登录在此目录下,退出此目录即可了。

Linux 服务器 umount 数据盘提示:device is busy

更多信息


fuser命令对文件操作的介绍

fuser 可用于查询文件、目录、socket端口和文件系统的使用进程,并且可以使用 fuser 关闭进程。当文件系统 umount 报 device busy 时,常用到 fuser 查询并关闭使用相应文件系统的进程。

基本上使基本上用-v 可以显示大部分内容:

Linux 服务器 umount 数据盘提示:device is busy

/root 目录下的使用者,进程ID,PID 后面的 c 代表进程的工作目录,后面是具体的命令。access 还有其他选项:

  • e:该文件为进程的可执行文件。
  • f:该文件被进程打开,默认 f 不显示。
  • F:该文件被进程打开,并写入,默认 F 不显示。
  • r:表示该目录为进程的根目录
  • m:表示进程使用该文件进行内存映射,或者该文件为共享库文件,被进程映射至内存。

更多使用帮助,可以通过 fuser -h 获取,或者参阅其 man 帮助信息。

 

admin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: