我正在使用 Win10.21H2,并且被一个长期存在的问题困扰。
下面进行演示:
- 假设我的 Win10 主机上有驱动器 E:,那么
ls /mnt/e
在我的 WSL1 shell 中可以正常工作。 - 现在,让 CMD 启动
chkdsk /f E:
并等待其完成。 - 回到 WSL1 shell,我发现
ls /mnt/e
失败并显示“参数无效”。
如果 E: 是外部 USB 硬盘上的分区,并且您拔下并重新插入硬盘,也会发生这种情况,这是一种更常见的情况。
那么如何从这个问题中恢复呢?我现在最好的办法是终止整个 WSL 会话(wsl -t Ubuntu-22.04
等等),然后重新运行它。这有点矫枉过正,因为它会强制该 WSL 内的每个 Linux 程序进入终端,非常不方便。
有没有更好的方法来恢复我的“/mnt/e”?
答案1
通过以下方式强制卸载可移动驱动器后,以下操作对我(在 WSL1 中)有效chkdsk /f
:
sudo umount /mnt/e
sudo mount -t drvfs E: /mnt/e
如果驱动器被拔出/重新连接,它也应该可以工作。
我正在运行 Windows 11,但是这个 WSL1 功能很长时间没有改变了,所以它在 Windows 10 中的行为应该相同。