我已经安装了一个块设备(内置硬盘)~/HD
,并且我正在尝试,
~# umount ~/HD
它回答说,
umount: device is busy.
现在我通过检查手动终止所有进程
~# fuser -m ~/HD
我还确保确实没有进程正在访问该~/HD
路径
~# lsof | grep HD
即使有选择,仍umount ~/HD
说。device is busy
-f
PS:我不想使用选项-l
,umount
因为已安装的设备实际上是一个加密的映射器设备,除非明确卸载映射器设备,否则它不会被卸载。
所以基本上我的问题是如何真的强制umount
卸载设备或设备如何仍被标记为忙碌的虽然没有进程正在访问它(或者至少fuser
不lsof
报告它)并且我该怎么办?
我在 Ubuntu 9.10 x64 上。
答案1
如果您在 ~/hd 的子目录中安装了其他东西,则会看到此行为。在这种情况下,fuser 和 lsof 都不会显示任何内容。如果您没有在 ~/hd 下安装任何东西(“mount”将回答这个问题),那么我不确定要检查什么。
答案2
确保您当前的工作目录(运行“pwd”)不在 ~/hd 下。如果您当前在该目录中,umount 将拒绝卸载。
答案3
命令lsof将告诉您哪些进程保持文件打开。
答案4
Larsks 写道:“如果您在 ~/hd 的子目录中安装了其他东西,您将看到此行为。在这种情况下,fuser 和 lsof 都不会显示任何内容。”
将 lsof 与 grep 一起使用将显示子目录的使用情况 - 例如“lsof |grep HD”。
我遇到了与原始海报相同的问题,并使用上述命令找到了原因。