umount报错设备繁忙(device is busy)怎么处理?

相关命令:

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 若卸载失败,尝试以只读方式重新挂载

-R 递归卸载目录以及其子对象

lsof

-a 列出打开文件存在的进程

-c <进程名> 列出指定进程所打开的文件

-g 列出GID号进程详情

-d <文件号> 列出占用该文件号的进程

+d <目录> 列出目录下被打开的文件

+D <目录> 递归列出目录下被打开的文件

-n <目录> 列出使用NFS的文件

-i <条件> 列出符合条件的进程

-p <进程号> 列出指定进程号所打开的文件

-u 列出UID号进程详情

-h 显示帮助信息

-v 显示版本信息

fuser

-a 显示命令行中指定的所有文件

-k 杀死访问指定文件的所有进程

-i 杀死进程前需要用户进行确认

-l 列出所有已知信号名

-m 指定一个被加载的文件系统或一个被加载的块设备

-v 显示详细的信息

-n 选择不同的名称空间

-u 在每个进程后显示所属的用户名

-SIGNAL 发送此信号SIGNAL而不是发送一个立即终止的信号

-w 仅终止具有写访问权限的进程

-V 显示版本信息

-4 仅搜索IPv4套接字

-6 仅搜索IPv6套接字

例如umount /dev/sdc1:

报错...: device is busy

此时处理方法:

①lsof

lsof /dev/sdc1

然后kill掉查出来的PID,再次尝试umount,看是否可以,不可以的话再试试下面的。

②fuser

fuser -mv /dev/sdc1

-v选项会打印出PID,这时候去kill掉或者直接这样:

fuser -kmv /dev/sdc1,直接会kill掉,不用再单独kill了。

再次尝试umount。

你可能感兴趣的:(Linux-Shell,linux,umount,device,is,busy)