我用 Ubuntu 22.04 安装了 WSL 2。
当我尝试在 PowerShell 中检查 WSL 内核时,我得到了以下结果:
PS C:\Users\user> wsl --status
Default Distribution: Ubuntu-22.04
Default Version: 2
Windows Subsystem for Linux was last updated on 6/7/2022
WSL automatic updates are on.
Kernel version: 5.10.102.1
从上面的消息中,我假设我使用的是 Linux 内核 5.10.102.1。
但是当我运行 Ubuntu 并使用uname -a
时,我得到了一个不同的 Linux 内核:
user@DESKTOP-:/mnt/c/Users/user$ uname -a
Linux DESKTOP-VMP6T3Q 4.4.0-19041-Microsoft #1237-Microsoft Sat Sep 11 14:32:00 PST 2021 x86_64 x86_64 x86_64 GNU/Linux
其中说Linux内核是4.4.0。
我的问题:
- 我使用的是哪个版本的 Linux 内核?
- 如果是 4.4.0,如何升级到 5.x?
- 如果是 5.10,我如何检查以确保它是那个版本?
虽然 WSL2 是您安装的新发行版的默认设置,但您的 Ubuntu 发行版似乎最初是作为 WSL1 安装的。
您可以通过以下方式确认:
在 WSL1 下运行
uname -a
时,伪内核将报告为:在 WSL2 下,内核将报告为:
在安装WSL2 或将其设置为默认值之前安装发行版是很常见的。将默认版本更改为 2 实际上并不会更改已安装的发行版。
您可以(并且应该)通过退出分发版来转换分发版,然后从 PowerShell 中:
如果你愿意,你可以先备份它:
我说“应该”是因为 Ubuntu 22.04 在 WSL1 下存在一些重大问题,特别是该
unzip
命令不起作用。虽然默认 WSL 版本设置为 2,但您正在运行的 WSL 发行版是 WSL 1。它根本不使用 Linux 内核。
WSL 1(Windows 10):
WSL 2:
WSL 1 和 2 满足不同的需求。WSL 1 提供 Windows 软件和文件的高性能互操作。WSL 2 提供真正的 Linux 内核,支持容器和更快的 Linux 文件系统等,但在访问 Windows 主机的文件系统时以有限的性能为代价。
您通常不应根据内核版本进行选择。