mount: is busy 解决思路、方法

背景

本文只针对centos7 系统硬盘挂载 做测试验证,至于其他挂载大同小异。

现象

  1. 当操作某个分区时,例如收回/opt挂载分区的写权限,改为只读时,提示磁盘busy不能实现
    [root@ ~]# mount -o ro,remount /opt
    mount: /opt is busy

  2. umount 某个分区,也会出现同样问题

结论

针对 现象1, 我们要处理如下步骤:

  1. 确认谁在该目录下写,命令如下:
lsof /opt | awk '$4~/^[0-9]+(w|u)/{print $0}'

lsof过滤出来拥有w\u权限的进程,这些就是包含写权限的,需要杀掉
  1. 做完第一步,一般都可以操作了,如果还不行,可能是有缓存文件操作没落盘:
sync

落完系统文件缓存
  1. 如果第二步做完还不行,可能是由于进程指向了一个该目录下的已删除文件,导致关系没解除:
[root@ ~]# lsof +L1; lsof|sed -n '/SYSV/d; /DEL\|(path /p;' |grep -Ev '/(dev|home|tmp|var)'

COMMAND     PID  USER   FD   TYPE DEVICE SIZE/OFF NLINK    NODE NAME
mysqld    12390 mysql   13u   REG    8,2        0     0  671903 /tmp/ib3WaybQ (deleted)
epmd      17378  root  txt    REG  253,0   147544     0 1055762 /opt/midware/mo_ejabberd/bin/epmd (deleted)
luban-tim 20396  root   13u   REG    8,2        0     0  673928 /tmp/tmpyfy104ja (deleted)


利用lsof +L1 命令,查处已删除文件信息,可以看到/opt 下epmd文件被人动过,但进程没重启,指向一个已删除执行文件,导致/opt分区不能收回写权限

现象2 思路更简单,在现象1的问题方法上,增加杀掉所有的访问进程即可

你可能感兴趣的:(个人文件,mount:,is,busy,umount,is,busy)