umount.nfs4: /home/videorec/sharedir: device is busy

发布时间 2023-10-18 11:31:40作者: 心恩惠动

用umount取消挂载时报错设备繁忙:device is busy。原因是还有进程在打开目录下的文件,可以先杀死进程,再卸载,或者强制卸载

 

umount

使用umount强制卸载,参数如下:

  • -l  --lazy,立即断开文件系统,所有清理后面执行。实际上就是延迟卸载,该挂载已从文件系统名称空间中删除,但它仍然安装,因为访问它的程序依然可以访问它;当最后一个访问程序结束时,将执行实际卸载
  • -a  卸载/etc/mtab中记录的所有文件系统
  • -O  限制文件系统集合(和-a选项一起使用)
  • -A  --all-targets,卸载当前名字空间内指定设备对应的所有挂载点
  • -c  --no-canonicalize,不对路径规范化
  • -d  若卸载了回环设备,也释放该回环设备
  • -f  强制卸载(遇到不响应的NFS系统时)
  • -h  显示帮助
  • -n  卸载时不要将信息存入/etc/mtab文件中
  • -r  若无法卸载成功,则尝试以只读方式重新挂入文件系统
  • -t  限制文件系统集合,文件系统类型:仅卸载选项中所指定的文件系统
  • -v  执行时显示详细的信息
  • -V  显示版本信息
  • -R  递归卸载目录以及其子目录

 

lsof

使用 lsof /home/videorec/sharedir/ 查找进程,kill掉进程号(第2列),再次尝试umount

  • -a  列出打开文件存在的进程
  • -c <进程名>  列出指定进程所打开的文件
  • -g  列出GID号进程详情
  • -d <文件号>  列出占用该文件号的进程
  • +d <目录>  列出目录下被打开的文件
  • +D <目录>  递归列出目录下被打开的文件
  • -n <目录>  列出使用NFS的文件
  • -i <条件>  列出符合条件的进程
  • -p <进程号>  列出指定进程号所打开的文件
  • -u  列出UID号进程详情
  • -h  显示帮助信息
  • -v  显示版本信息

 

fuser

使用 fuser -kmv /home/videorec/sharedir/ 直接kill,再尝试umount

  • -a  显示命令行指定的所有文件
  • -k  杀死访问指定文件的所有进程
  • -i  杀死进程前需要用户进行确认
  • -l  列出所有已知信号名
  • -m  指定一个被加载的文件系统或一个被加载的块设备
  • -v  显示详细的信息
  • -n  选择不同的名称空间
  • -u  在每个进程后显示所属的用户名
  • -SIGNAL  发送此信号而不是发送一个立即终止的信号
  • -w  仅终止具有写访问权限的进程
  • -V 显示版本信息
  • -4  仅搜索IPv4套接字
  • -6  仅搜索IPv6套接字