首页/系统/信创系统运维速查/设备忙无法卸载的处理
常见问题65 条

设备忙无法卸载的处理

umount 报 target is busy:用 fuser/lsof 找出占用者(含被删文件句柄)与工作目录占用,处理后正常卸载,慎用强制卸载。

信创系统运维速查系统更新于 2026-10-13

设备忙的几种占用来源

卸载时报目标忙,说明仍有进程在使用该挂载点。占用不限于「打开了文件」这一种形式:进程把挂载点下的目录当成当前工作目录、进程持有已被删除但仍未释放的文件句柄、内核模块或服务保持了对该路径的引用,都会导致同样的报错。

强制卸载不是首选

强制卸载只是把挂载点从命名空间里摘除,底层设备与正在写入的数据仍然存在,已经打开句柄的进程可能继续写入预期之外的位置,或者未落盘的数据直接丢失。因此应优先通过停止占用方来正常卸载,强制手段只在评估过影响、且确认无重要写入时使用。

基本信息

定位工具按挂载点查询占用进程,查看打开的文件
隐蔽占用工作目录占用与已删除文件的句柄
处理顺序停止占用方后正常卸载
强制卸载评估影响后使用,存在数据风险

典型使用场景

  • 维护窗口内需要卸载数据盘,提示目标忙
  • 存储迁移前卸载挂载点失败
  • U 盘或外置盘拔不出来,提示设备忙
  • 网络存储恢复后需要重新挂载,旧挂载点卸不掉
  • 巡检时发现挂载点残留占用

定位占用

定位占用
fuser -vm /mnt/data 2>/dev/null | head         # 占用进程一览
lsof +f -- /mnt/data | head                    # 打开的文件清单
lsof +L1 2>/dev/null | grep /mnt/data | head   # 已删除但未释放的句柄
ls -l /proc/<PID>/cwd 2>/dev/null              # 核查进程工作目录是否在挂载点内

处理

处理
systemctl stop <占用服务名>                   # 示例:停止占用方
umount /mnt/data                               # 正常卸载
mount | grep /mnt/data                         # 复核已卸载
# 确需强制时评估影响后再用:umount -l(延迟卸载)
# 网络存储场景检查挂载参数,硬挂载会让卸载长时间等待

占用类型与处置

占用类型识别方式处置
进程打开文件按挂载点列出打开的文件停止对应服务后卸载
工作目录占用查看进程的工作目录指向切换目录或重启该进程
已删除文件句柄列出被删除但仍打开的文件重启持有句柄的进程
服务依赖服务单元依赖该挂载点先停止服务再卸载
内核或子系统引用常规手段无法定位占用评估后使用延迟卸载
强制卸载可能造成未落盘数据丢失或文件系统状态不一致。执行前确认没有重要写入,并复核挂载点下的业务已停止或已迁移。

易错点

  • 只查打开的文件,忽略进程把挂载点当工作目录这种隐蔽占用,排查陷入僵局
  • 不评估影响就使用强制卸载,业务写入丢失或被写到预期之外的位置
  • 卸载后不安排业务恢复流程,服务仍在运行时启动,出现状态不一致
  • 网络存储硬挂载导致卸载长时间等待,误判为命令无响应而反复执行

数据来源与参考

  • man 8 umount
  • man 8 fuser
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌