LOADING

加载过慢请开启缓存 浏览器默认开启

如何更新WSL2的内核

2023/3/12 Linux WSL Linux

前言

要更新WSL2的内核,我们有两种官方途径可选

  1. 使用wsl --update命令自动升级内核
  2. microsoft/WSL2-Linux-Kernel下载含WSL2内核配置的源码并构建

然而这两种途径的更新周期都比较长,通常要几个月才会更新一次,如果想使用最新版本的内核该怎么做呢?

内核下载

由于WSL2使用的是完整的Linux内核,我们可以自己在kernel.org下载内核源码并构建

不过要注意的是,我们必须使用WSL2内核配置,否则可能将无法正常启动WSL2

没有收到虚拟机或容器的回应,操作超时。

Error code: Wsl/Service/CreateInstance/CreateVm/HCS_E_CONNECTION_TIMEOUT

以截止发文日最新longterm版本6.1.18为例:

wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.1.18.tar.xz
tar -xf linux-6.1.18.tar.xz
cd linux-6.1.18

如果源码下载速度过慢可以考虑前往校园网联合镜像站MirrorZ.org查找国内源进行下载

配置下载

前往microsoft/WSL2-Linux-Kernel中的Microsoft下载配置

构建方法

  1. 安装构建依赖

    $ sudo apt install build-essential flex bison dwarves libssl-dev libelf-dev (Debian(补佳乐)系)

    $ sudo pacman -S base-devel openssl libelf (Arch系)

  2. 使用WSL2内核配置构建内核

    $ make KCONFIG_CONFIG=<path/to/config-wsl> -j$(nproc)

你也可以使用站长构建好的内核(amd64)

WSL2-Linux-Kernel | 饺子の下载站

备用链接 - OneDrive for Business

(不定期更新,所有已上传内核均使用kernel.org或其镜像源下载的内核源码构建,保证无毒,且已验证可以正常启动,请放心使用)

安装方法

%USERPROLE%\.wslconfig中添加以下内容:

[wsl2]
kernel=path\\to\\bzImage

你也可以使用

Add-Content $env:USERPROFILE\.wslconfig "[wsl2]`nkernel=path\\to\\bzImage"

来快速添加配置添加内容

添加完后使用wsl --shutdown关闭WSL2实例并再次启动WSL2实例

启动WSL2实例后使用uname -r查看内核是否更换成功,若内核版本没有变化请检查是否重启WSL2实例,或.wslconfig是否放置在正确位置

如果你使用的是站长构建的内核,在执行uname -r后应当返回r.x.y-Misaka10072-microsoft-standard[-WSL2]

至此,更新WSL2内核的操作已经完成,Enjoy it!

本文作者:Misaka10072 · 是饺子呀QwQ

原文链接:https://www.mis1072.top/post/WSL2LinuxKernel

版权声明:本文采用CC BY-NC-SA 4.0许可协议,转载请注明出处!