从 WSL2 恢复到 WSL1

Revert from WSL2 to WSL1

我是 WSL 的忠实粉丝,当他们宣布 WSL2 时我非常激动。但是,官方文档表示,在处理 Windows 文件系统中的文件时,WSL2 的性能不如 WSL1。这有点令人失望,因为我的大部分工作都在 Windows 文件系统本身中,我希望保持这种状态。

但是为了检查它,我将我的主要发行版转换为 WSL2:

wsl --set-version Ubuntu-18.04 2

转换成功。然后当我 运行

cd
explorer.exe .

它在 Network\wsl$\Ubuntu-18.04\home\user 中启动了一个文件资源管理器。我知道这是 WSL2 中的一个特性;我们可以使用 Windows 资源管理器访问 Linux 文件系统。

但是,我随后决定恢复到 WSL1(文件系统访问)。所以我 运行 命令:

wsl --set-version Ubuntu-18.04 1

并且只是为了交叉检查,运行宁

wsl --list --verbose

将我的主要发行版列为 运行ning 版本 1。

但现在如果我转到 ~ 和 运行 explorer.exe .,它仍然会在文件资源管理器中打开目录! AFAIK,这通常会导致 windows 无法访问具有 Linux 结构的文件路径或当 运行 使用 WSL1.

时类似的错误

所以我想知道这是正常现象,还是因为还原而发生,还是我以某种方式破坏了我的安装?

TIA!

对我来说听起来“正常”。一年多以前,Windows 10 版本 1903 中的 WSL1 中添加了对从 Windows 安全访问 WSL 文件的支持。参见 https://devblogs.microsoft.com/commandline/whats-new-for-wsl-in-windows-10-version-1903/

我想我更惊讶的是您在尝试从资源管理器访问 WSL1 时收到错误消息 2004。也许您只是假设根据 1903 年之前的经验它仍然会失败?

键入此命令以获取发行版

wsl -l -v

然后键入此命令回滚/设置默认版本

  wsl --set-version Ubuntu-20.04 1

它会输出类似 - 转换正在进行中,这可能需要几分钟...

然后再次尝试 wsl -l -v 命令,并检查结果

在我的例子中前后结果是

  NAME                   STATE           VERSION
* Ubuntu-20.04           Stopped         2
  docker-desktop         Stopped         2
  docker-desktop-data    Stopped         2

及之后

  NAME                   STATE           VERSION
* Ubuntu-20.04           Stopped         1
  docker-desktop         Stopped         2
  docker-desktop-data    Stopped         2

编辑

实际上我在留下这条评论后阅读了问题的描述,我想我根本不会回答这个问题,但我决定把它留在这里,因为它可能会有帮助对于正在努力弄清楚的人!