如何为你的WSL2更换最新的6.5.7kernel

1.如果你像我一样,喜欢折腾你的 WSL2 ,这里是安装内核 6.X 的方法。

2.这是一个坏主意,可能会导致系统不稳定、数据损坏和其他问题。也可能会没事的,但不要怪我。

Arch linux的wsl2版本可以在微软商店下载,这是最简单的方法

本文用6.3.6进行演示,经实测6.5.7也是可以按照这个方法做到的

3.安装内核的依赖,对于 Debian 和 Ubuntu 来说,它是
sudo apt install build-essential flex bison dwarves libssl-dev libelf-dev

对于 Arch 来说,它是
pacman -S base-devel flex bison pahole openssl libelf bc

ubuntu我并没有进行尝试,我使用的发行版为archlinux

4.下载你喜欢的 6.X 内核源代码、解压缩、cd
wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.3.6.tar.xz && tar xf linux-6.3.6.tar.xz && cd linux-6.3.6

  1. 下载Microsoft的 WSL2 内核配置并将其放在某个地方
    wget https://raw.githubusercontent.com/microsoft/WSL2-Linux-Kernel/linux-msft-wsl-6.1.y/arch/x86/configs/config-wsl -O arch/x86/configs/config-wsl

6.使用所有线程编译内核
make KCONFIG_CONFIG=arch/x86/configs/config-wsl -j$(nproc)

7.我使用了自己的配置,如果你不知道自己在做什么,就什么也不要动

8.编译完成后,将内核映像复制到 Windows
cp arch/x86/boot/bzImage /mnt/C/opt

这是我的位置,你可以选位置

复制完将文件名改为kernel

9.关闭wsl虚拟机,打开PowerShell或cmd.exe然后执行 wsl --shutdown

10.编辑C:\Users\你的用户名.wslconfig
[wsl2]
kernel=C:\\opt\\kernel(是双斜线,不要改)

11.将c:\opt\kernel复制到C:\Windows\System32\lxss\tools

12.重启wsl虚拟机,输入uname-r就可以看到自己的内核了

补充

经过测试最新的6.5.7也是可以安装的

DLC:如何开启systemd

sudo vim /etc/wsl.conf
[boot]
systemd = true