sjr*_*jrm 35 linux kernel wsl2
我的 WSL2 子系统中当前的内核版本是:
5.10.60.1-microsoft-standard-WSL2
Run Code Online (Sandbox Code Playgroud)
但是,我在官方 Microsoft WSL GitHub 存储库中看到有更新版本的内核:
linux-msft-wsl-5.10.102.1
Run Code Online (Sandbox Code Playgroud)
如何更新已安装的 WSL 设置中的内核?我试过这个:
wsl --update
Run Code Online (Sandbox Code Playgroud)
但它不会更新内核版本。
Not*_*1ds 41
目前至少有三种方法可以升级 WSL2 内核:
对于最新的 Windows 版本(Windows 10 21H2 和 Windows 11),wsl --update
通常是最佳选择,但要意识到 Microsoft 在 Github 上发布内核的时间与可用于自动更新的时间之间存在轻微的滞后。
写这个问题的时候:
wsl --update
(当时)没有将其引入 OP——它根本还无法用于wsl --update
(或 Windows 自动更新)。然而,现在,截至本次编辑时:
wsl --update
内核。请注意,您可能需要wsl --update
在管理会话中运行才能更新。
如果需要,您可以使用以下命令恢复到以前的内核版本:
wsl --update --rollback
Run Code Online (Sandbox Code Playgroud)
无论如何,我建议在更新之前重命名(或移动到另一个位置)以前的内核,以便您可以根据需要使用该.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 实例。
har*_*ymc 33
为了确保获得 WSL2 内核的更新:
这将允许 Windows 为 WSL 2 安装最新的 Linux 2 内核。
Github 上存在更高版本并不意味着它尚未合并到稳定版本中。
Jur*_*ber 18
wsl --update
对于那些由于公司严格的用户更新政策而无法更新 WSL 内核的人,他们可以手动安装 WSL 内核。读这个
cd C:\Users\your_username\Desktop\
wsl --shutdown
wsl_update_x64.msi
wsl
uname -r
Run Code Online (Sandbox Code Playgroud)
这应该会更新内核并显示最新的运行版本。