WSL2 上不同的Linux分发版,可以使用同一个Linux内核。
查看WSL Linux内核版本
可在powershell中使用wsl -v
查看内核版本:
PS C:\Users\hhw> wsl -v
WSL 版本: 1.2.5.0
内核版本: 5.15.90.1
WSLg 版本: 1.0.51
MSRDC 版本: 1.2.3770
Direct3D 版本: 1.608.2-61064218
DXCore 版本: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp
Windows 版本: 10.0.22624.1755
可看到内核版本为5.15.90.1,但是该信息不一定准确,因为直接替换内核不会同时修改该信息。
若要获得准确、详细的内核信息。可在wsl linux中使用uname -a
命令:(查看OS版本信息)
hhw@hhw:~$ uname -a
Linux hhw 6.1.21.2-microsoft-standard-WSL2 #1 SMP Wed May 17 19:51:45 +08 2023 x86_64 x86_64 x86_64 GNU/Linux
可以看到完整的内核版本名为:6.1.21.2-microsoft-standard-WSL2
内核替换
windows11上默认内核路径为:
C:\Windows\System32\lxss\tools\kernel
kernel文件即为我们的Linux内核。
你可以重命名编译好的内核kernel_6.1.21.2_minix
为kernel
,然后直接替换。
也可以通过修改WSL2的配置文件来指定所使用的内核。
将kernel_6.1.21.2_minix
内核文件复制到\tools\
下(或其他任何地方)
配置文件目录:C:\Users\uername\.wslconfig
,添加内容如下:
[wsl2]
kernel=C:\\Windows\\System32\\lxss\\tools\\kernel_6.1.21.2_minix
则可以指定所有的Linux分发版使用该文件目录指定的内核。
注意,替换前需要先关闭所有的wsl2 linux的shell窗口,然后将所有分发关机:
PS C:\Users\hhw> wsl --shutdown
// 检查
PS C:\Users\hhw> wsl -l --running
没有正在运行的分发。
检查内核版本
hhw@hhw:/mnt/c/Users/hhw$ uname -a
Linux hhw 6.1.21.2-hhw-WSL2 #2 SMP Wed May 17 20:46:33 +08 2023 x86_64 x86_64 x86_64 GNU/Linux
可以看到,内核已经替换为6.1.21.2-hhw-WSL2
。