挂载点被进程、shell会话或内核引用占用导致“target is busy”错误;应先用fuser -v和lsof +d精准定位占用者,再通过cd退出、服务停止、umount -l延迟卸载分步安全释放。

当 Linux 提示 target is busy 或 device is busy 时,说明挂载点正被进程、shell 会话或内核引用占用。安全卸载的关键不是强行踢掉所有进程,而是先识别、再协商、最后释放——避免数据丢失或文件系统损坏。
查清谁在用这个挂载点
用 lsof 或 fuser 快速定位活跃访问者:
查看所有打开该目录及其子目录的进程:
sudo lsof +D /mnt/mydisk更简洁地列出占用进程(含用户、PID、命令):
sudo fuser -v /mnt/mydisk若输出中某行标注
c(如bash 12345 root c...),表示该进程当前工作目录就在挂载点内;标m表示内存映射了其中的文件;标F表示以写方式打开——这些都需要特别注意。
先尝试温和释放
多数情况下,占用是临时且可协商的:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
如果只是终端 shell 当前位于
/mnt/mydisk下,直接执行:cd /切换出去即可。如果是文件管理器(如 Nautilus、Thunar)或编辑器(如 vim、nano)打开了里面的文件,手动关闭对应窗口或保存退出。
若有后台任务(如
rsync、cp、tail -f日志),确认是否完成,再终止:sudo fuser -k /mnt/mydisk
这会向占用进程发送SIGTERM(优雅终止信号),比kill -9安全得多。
确实无法立即释放?用懒卸载(lazy unmount)
适用于进程已退出但内核引用未清理干净(比如 NFS hang、僵尸句柄、容器残留):
sudo umount -l /mnt/mydisk
它会立刻断开挂载点与文件系统的关联,让目录变为空,同时等待所有内核级引用自然释放后再彻底清理。
⚠️ 注意:此时设备不可拔出或重格式化,需等 findmnt | grep mydisk 不再显示该挂载,才表示真正释放完毕。
特殊场景要额外检查
-
容器或虚拟机:运行
docker ps或podman ps,停掉相关容器;查virsh list,关掉使用该路径的 VM。 -
绑定挂载(bind mount):执行
findmnt -D /mnt/mydisk,若发现子挂载,需先umount子路径。 -
systemd 挂载单元:查
systemctl list-units --type=mount | grep mydisk,停用对应 unit(如sudo systemctl stop mnt-mydisk.mount)。
卸载后用 mount | grep mydisk 或 findmnt /mnt/mydisk 验证是否已移除。整个过程不复杂,但容易忽略“当前工作目录”和“后台监听”这两类常见隐形占用。










