文章目录
最好的linux开发者是微软吗 😄? WSL2 如何升级linux内核到v6
WSL2 是什么
Windows Subsystem for Linux (WSL ) ,是 Windows 的 Linux 子系统。 可让开发人员直接在 Windows 上按原样运行 GNU/Linux 环境(包括大多数命令行工具、实用工具和应用程序),且不会产生传统虚拟机或双启动设置开销。
WSL2 vs WSL1
WSL 2 是对基础体系结构的一次重大改造,它使用虚拟化技术和 Linux 内核来实现其新功能。 此更新的主要目标是提高文件系统性能和添加完全的系统调用兼容性。我们建议使用 WSL 2,因为它提供更快的性能和100% 的系统调用兼容性
功能 | WSL1 | WSL2 |
---|---|---|
Windows 和 Linux 之间的集成 | ✅ | ✅ |
启动时间短 | ✅ | ✅ |
与传统虚拟机相比,占用的资源量少 | ✅ | ✅ |
可以与当前版本的 VMware 和 VirtualBox 一起运行 | ✅ | ❌ |
托管 VM | ❌ | ✅ |
完整的 Linux 内核 | ❌ | ✅ |
完全的系统调用兼容性 | ❌ | ✅ |
跨 OS 文件系统的性能 | ✅ | ❌ |
systemd 支持 | ❌ | ✅ |
IPv6 支持 | ✅ | ✅ |
安装
可以更换wsl2的内核吗
1、 内核版本查看
安装好wsl2后, 通过wsl命令或者wsl -d 进入发行版。
通过uname -a 命令查看默认wsl2的内核
我这边安装好的linux发行版,默认的linux内核是Linux ubuntu24 5.15.146.1-microsoft-standard-WSL2 ,可以看出linux内核是5.X版本的,并且是微软为wsl2定制的。虽然内核版本5.x 可能对大多数用户来说已经足够了,但在某些情况下,你可能需要最新版本。
2、 构建v6.1.x内核
1、打开 WSL 终端窗口并启动你选择的发行版(例如:Ubuntu)
2、从 GitHub 克隆 Microsoft Linux 内核仓库:
git clone https://github.com/microsoft/WSL2-Linux-Kernel.git --depth=1 -b linux-msft-wsl-6.1.y
3、安装构建内核所需的软件包:
sudo apt update && sudo apt install build-essential flex bison libssl-dev libelf-dev bc python3 pahole
4、进入内核所在目录:
cd WSL2-Linux-Kernel
5、编译内核:
make -j$(nproc) KCONFIG_CONFIG=Microsoft/config-wsl
编译内核需要一定的时间,请耐心等待哦,看到下图提示时,说明内核编译完成了
6、安装内核模块和头文件:
sudo make modules_install headers_install
通过file命令查看内核镜像基本信息
file arch/x86/boot/bzImage
得到下面的输出
~/workspace/WSL2-Linux-Kernel (linux-msft-wsl-6.1.y*) # file arch/x86/boot/bzImage root@ubuntu24
arch/x86/boot/bzImage: Linux kernel x86 boot executable bzImage, version 6.1.21.2-microsoft-standard-WSL2+ (root@ubuntu24) #2 SMP Thu Jun 6 21:59:05 CST 2024, RO-rootFS, swap_dev 0XE, Normal VGA
-----------------------------------------------
可以看出bzImage文件是可执行的linux内核程序,版本为version 6.1.21.2-microsoft-standard-WSL2+
7、拷贝内核镜像到windows目录,我这边拷贝到E盘了:
cp arch/x86/boot/bzImage /mnt/e/
8、退出wsl的终端窗口
3、 安装wsl2的v6.1.xlinux内核
一旦构建了 Microsoft Linux 内核,您就可以配置 WSL 以使用它而不是原始内核,如下所示:
1、编辑文件 %USERPROFILE%.wslconfig (如果没有这个文件,需要创建)输入以下内容:
[wsl2]
kernel=E:\\bzImage
2、以管理员权限打开PowerShell终端窗口
3、停止wsl实例
wsl --shutdown
4、 使用v6.1.x内核
安装并配置新的 Microsoft Linux 内核 v6.1.x 后,您现在可以启动 WSL2 发行版并检查内核版本,如下所示:
1、打开 WSL 终端窗口并启动你选择的发行版(例如:Ubuntu)
打开默认的发行版
wsl
或者使用以下命令打开指定的发行版
wsl -d <发行版名称>
2、检查内核:
uname -r
可以看到如下的输出
~ # uname -a root@ubuntu24
Linux ubuntu24 6.1.21.2-microsoft-standard-WSL2+ #1 SMP Mon Jun 3 22:31:43 CST 2024 x86_64 x86_64 x86_64 GNU/Linux
至此,内核已经更换成功了。