当 umount 由于磁盘断开连接而挂起时,如何卸载?

当 umount 由于磁盘断开连接而挂起时,如何卸载?

我有一个通过 USB 连接的外部磁盘,它意外地断开了连接。现在,ls进入挂载它的目录时,会出现Input/output errorumount进入目录时,目录会挂起。dmesg 只包含:

[3360010.363235] usb 2-1.1: USB disconnect, device number 3

我该如何解决这个问题(重新启动),即如何在外部存储设备不干净断开连接后清理内核状态?

答案1

延迟卸载通常可以达到此目的。

sudo umount -l /path/where/its/mounted

如需更多信息,请尝试man umount

-l--lazy 延迟卸载。立即将文件系统从文件层次结构中分离出来,并在文件系统不再繁忙时立即清除对此文件系统的所有引用。

如果您要将此选项用于网络文件系统或带有子挂载的本地文件系统,则系统将在不久的将来重新启动。建议的用例umount -l是为了防止由于无法访问网络共享而导致关机时挂起,在这种情况下,正常的卸载会因服务器停机或网络分区而挂起。将无法重新挂载共享。

答案2

你还应该能够做到

sudo umount -f /path/to/mount

man umount

   -f     Force unmount (in case of an unreachable NFS system).  (Requires
          kernel 2.1.116 or later.)

答案3

只是在这里发布,希望它能对将来阅读此文的人有所帮助。我有一个映射到的共享/tmp/delete-me,每当我输入共享路径时,/tmp/delete-m_它都会在我完成输入全名之前停止。这就是为什么强制卸载的建议不起作用的原因。

我的解决方法是首先使用read内置命令设置一个变量,然后使用变量名卸载。

# If zsh
read "sharePath?Enter the path to the share to be removed: "

# If bash
read -p "Enter the path to the share to be removed: " sharePath

sudo umount $sharePath

答案4

刚刚遇到同样的问题-尝试执行:

sudo umount /path/mymount

但是当我输入 sudo umount /path/mymoun 时它总是挂起 - 所以无法输入最后一个 t 并按回车键,因为系统似乎试图读取目录。而且 -l 或 -f 没有帮助

对我有用的是 - 我没有输入整个路径,而是使用了通配符:

sudo umount -f /path/mymo*

相关内容