我的 WSL2 子系统中的当前内核版本是:
5.10.60.1-microsoft-standard-WSL2
但是,我在官方 Microsoft WSL GitHub 存储库中看到有一个更新版本的内核:
linux-msft-wsl-5.10.102.1
如何在已安装的 WSL 设置中更新内核?我试过这个:
wsl --update
但它不会更新内核版本。
我的 WSL2 子系统中的当前内核版本是:
5.10.60.1-microsoft-standard-WSL2
但是,我在官方 Microsoft WSL GitHub 存储库中看到有一个更新版本的内核:
linux-msft-wsl-5.10.102.1
如何在已安装的 WSL 设置中更新内核?我试过这个:
wsl --update
但它不会更新内核版本。
目前至少有三种方法可以升级您的 WSL2 内核:
对于最近的 Windows 版本(Windows 10 21H2 和 Windows 11),
wsl --update
通常是最佳选择,但要意识到微软在 Github 上发布内核的时间与他们使其可用于自动更新的时间之间存在轻微的滞后。写这个问题时:
wsl --update
(当时)没有为 OP 引入它的原因——它根本还不能用于wsl --update
(或 Windows 自动更新)。但是,现在,截至本次编辑时:
wsl --update
(和自动 Windows 更新)用于 Windows 10 和 11 系统。请注意,您可能需要
wsl --update
在管理会话中运行才能更新。如果需要,您可以使用以下命令恢复到以前的内核版本:
无论如何,我建议在更新之前重命名(或移动到另一个位置)以前的内核,以便您可以在需要时使用该
.wslconfig
文件在各种内核之间切换。注意:目前在 Microsoft Store 中还为 Windows 11 用户提供了 WSL 的“预览版”版本。如果您使用的是这个 Store 版本,那么
wsl --update
不仅会更新内核本身,还会将 WSL Store 包更新为最新版本。因为它是一个用户级应用程序,所以您不再需要wsl --update
在管理会话中运行。 在这些版本中wsl --update --rollback
也不再可用。对于不支持的旧版 Windows 10
wsl --update
,请参阅@harrymc 的回答。您仍然可以选择自动更新,并且(如果可用)新内核将通过正常的 Windows 更新机制进行升级。最后,您当然可以编译自己的 WSL2 内核。最好从 Microsoft 资源开始,因为它为内核提供了正确的配置选项选择,以便在 Windows/WSL2 中最佳运行。
编译或获得自定义内核后,您可以通过使用
.wslconfig
适当的部分和内核配置创建一个来指定将其用于所有 WSL2 实例。为了确保获得 WSL2 内核的更新:
这将允许 Windows 为 WSL 2 安装最新的 Linux 2 内核。
Github 上存在更高版本并不意味着它尚未被纳入稳定版本。
对于那些
wsl --update
由于公司严格的用户更新政策而无法更新 WSL 内核的人,他们可以手动安装 WSL 内核。读这个这应该会更新内核并向您显示最新的运行版本。