“device is busy”错误源于进程正访问挂载点,lsof是最直接定位工具:用sudo lsof +f -- /mnt/data精准扫描,重点关注cwd、root、txt等占用类型,结合findmnt -r检查子挂载,必要时umount -l惰性卸载。

当执行 umount 报错 “device is busy” 时,通常是因为有进程正在访问该挂载点(如打开文件、进入目录、作为工作目录、挂载子文件系统等),lsof 是定位这类占用最直接有效的工具。
确认挂载点路径并运行 lsof 扫描
先用 df -h 或 findmnt 明确目标挂载点的绝对路径(例如 /mnt/data)。然后以 root 权限运行:
-
sudo lsof +D /mnt/data—— 递归扫描该目录下所有被打开的文件和子目录(较慢但全面) -
sudo lsof /mnt/data—— 只检查挂载点本身(速度快,可发现 cwd/root/working dir 类型占用) -
sudo lsof +f -- /mnt/data—— 强制按文件系统扫描(推荐,更准确识别挂载点级占用)
识别关键占用类型
lsof 输出中需重点关注以下几类行为:
- cwd:进程当前工作目录设为此挂载点(常见于 shell、后台服务)
- root:进程根目录(chroot 环境或容器)位于该挂载点
- txt:可执行文件或共享库从该挂载点加载(如程序直接在该盘上运行)
- mem:内存映射文件(mmap)来自该挂载点
- DEL:已删除但仍被打开的文件(仍会阻止卸载)
快速过滤与终止干扰进程
为减少干扰,可结合 grep 精准查看:
在无 root/sudo 权限的环境(云容器、VPS、隔离主机)中安装并配置 OpenClaw 浏览器工具的 headless Chrome。适用场景:...
sudo lsof +f -- /mnt/data | grep -E '(cwd|root|txt)'-
sudo lsof -X /mnt/data 2>/dev/null(若启用了 NFS 或某些特殊文件系统)
确认无关键业务后,可用 kill -9 PID 终止对应进程;对 shell 进程,检查是否有人登录在该目录下(ps auxf 查看进程树);对容器类占用,需先停止对应容器。
排除隐藏占用:子挂载与内核活动
有时 lsof 不显示明显进程,但卸载仍失败,可能原因包括:
- 存在子挂载(
findmnt -R /mnt/data检查嵌套挂载,需逐级卸载) - 内核模块或自动挂载器(如 autofs、systemd automount)正在监听
- 用户命名空间或容器运行时(如 podman、docker)残留 bind mount
- 使用
lsof -nP +L1查看是否有打开的链接数为 0 但未关闭的文件(即“悬空引用”)
此时可尝试 umount -l /mnt/data(lazy 卸载)临时解耦,再排查根源。










