WSL:我正在运行版本 1 还是版本 2?

WSL:我正在运行版本 1 还是版本 2?

我有适用于 Linux 的 Windows 子系统,但我不知道我拥有哪个版本,并且许多东西在版本 1 中无法运行。我如何检查我的版本?

答案1

  1. 在 Windows 10 命令提示符下,运行ver。是倒数第二个数字组版本18917 或更高版本? 如果是的话,可能的你有 WSL 2,但还没有已验证. 继续步骤 A或者B.
    如果你这样做不是请参见 Windows 版本 18917 或更高版本,您拥有的是版本 1。
    这说明了操作系统为 Build 16299 时的结果:

    版本 16299

    A. 打开窗户电源外壳或者命令并输入命令wsl -l -v。如果版本 2 安装正确,您将看到版本号。如果您没有看到版本号,或者看到错误消息(谢谢,瓦伦丁角膜)您拥有版本 1(您可能还会看到版本号“1”,这可能表明您正在运行 v1 - 请参阅这里)。卸载它,然后按照以下方法重新安装https://scotch.io/bar-talk/trying-the-new-wsl-2-its-fast-windows-subsystem-for-linux

    B. 从 WSL shell 提示符运行unameuname -r。如果内核版本 >= 4.19,则为 WSL 版本 2。

这有什么关系?

WSL 1 基于微软的 Linux 兼容内核接口, 兼容转换层没有Linux内核代码。

WSL 2 经过重新设计,使用在轻量级 VM 环境中运行的 Linux 内核,创新者发现使用 WSL 2 可以做更多的事情。

Windows 10 版本 2004(内部版本 19041.153 及更高版本)进一步增强了 WSL2;请参阅https://devblogs.microsoft.com/commandline/wsl2-will-be-generally-available-in-windows-10-version-2004/https://winaero.com/blog/wsl2-will-ship-with-windows-10-version-2004-with-kernel-updates-via-windows-update/

答案2

  1. 打开 PowerShell
  2. 使用以下方法检查版本wsl -l -v
  3. 如果是版本 1,则使用以下方法更新版本wsl --set-version Ubuntu-20.04 2

注意:更改正在运行的操作系统的版本将会终止它。 操作系统名称不必为 Ubuntu-20.04。请选择列出的实际名称 wsl -l -v

如果你无法更新到版本 2,那么你可能没有使用 WSL 2 内核。这可能是从 Microsoft 下载

答案3

在我运行的 WSL 版本中,我只需输入uname -r即可获得结果

5.4.72-microsoft-standard-WSL2

所以,我可以说它是 WSL2,所以您可以尝试运行uname -r并检查。

答案4

如果你恰好正在运行适用于 Windows 的 Docker,并且拥有 WSL 1,那么如果你docker在 WSL 的终端中输入,你会看到该消息The command 'docker' could not be found in this WSL 1 distro.,这是一个非常明确的确认。

相关内容