我有一个通过 USB 连接的外部磁盘,它意外地断开了连接。现在,ls
进入挂载它的目录时,会出现Input/output error
。umount
进入目录时,目录会挂起。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*