WSL2:为什么我必须在重新启动 PC 后关闭 WSL 才能重新启动 WSL

nnh*_*uan 5 ubuntu windows-subsystem-for-linux wsl-2

我的 Windows 使用 Ubuntu 设置了 WSL。在我升级到 WSL2 之前,它一直运行良好。

问题是:每次我启动我的电脑(或重新启动我的电脑)时,它都会丢失从 Ubuntu 到 Windows 驱动器的连接。

我收到这样的消息:

cd: Input/output error: /mnt/d/
Run Code Online (Sandbox Code Playgroud)

通过运行以下命令可以轻松解决上述问题:

wsl.exe --shutdown
Run Code Online (Sandbox Code Playgroud)

我想永久解决这个问题,而不是每次遇到问题就关闭 WSL。

知道如何永久解决这个问题吗?

小智 5

这听起来像是一个快速启动问题。尝试在控制面板中禁用它。在此输入图像描述

  • 快速启动是一种休眠形式,这也会导致 WSL 中的网络功能出现问题。我同意@Smithienious 的观点,如果“wsl --shutdown”正在解决这个问题,那么快速启动或休眠可能是原因。我最初在[this](https://github.com/microsoft/WSL/issues/4636) Github问题中的某个地方发现了这个,并且它已经被[this](https://stackoverflow.com)上的一些评论和赞成票所证实。 /a/63455770/11810933)答案。我参与的另一个问题/答案表明驱动器安装可能是同一子系统的一部分,但我现在手头没有它。 (4认同)
  • 快速启动确实是一个很酷的功能,它可以节省大量时间。如果需要,我们可以硬重启,但大多数时候,我们希望快速启动。因此,禁用它并不是一个好主意。如果我必须在禁用快速启动或重新运行 `wsl --shutdown` 之间做出选择,那么 `wsl --shutdown` 只需要不到 1 秒的时间(Windows-R 中已经记住了)。 (2认同)

小智 5

过去两个月我再也没有见过这个问题了。有关详细信息,我将 Windows 升级到 Windows 11 并始终执行 Windows 更新。看起来最新的 Windows 更新之一修复了这个问题。所以我可以确认这个问题在过去两个月里不再发生了。