You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何离线从GitHub更新WSL2内核版本以适配Docker Desktop?

离线更新WSL2内核至5.15.146.1-2的方案(适配Docker Desktop要求)

前置快速替换方法(针对已编译出vmlinux的情况)

如果你已经在WSL2 Ubuntu中编译得到vmlinux文件,可直接替换Windows本地内核:

  • 定位WSL2内核默认路径:C:\Windows\System32\lxss\tools,其中kernel为当前使用的内核文件
  • 备份原文件:重命名kernel为kernel.bak
  • 将编译好的vmlinux复制到该路径,并重命名为kernel
  • 执行命令wsl --shutdown重启WSL,内核更新立即生效

方案一:局域网内定期构建WSL2内核更新源

1. 搭建局域网文件服务器

在局域网内选一台有互联网权限的机器,搭建静态文件服务器(可用Nginx、Apache,或Python简易服务:python -m http.server 8000),确保无网络的Windows主机可访问该服务器。

2. 定期构建并同步内核文件

在联网机器上按周期执行以下操作:

  • 克隆WSL2内核源码:git clone https://github.com/microsoft/WSL2-Linux-Kernel.git
  • 切换到目标版本:git checkout linux-msft-wsl-5.15.146.1-2
  • 安装编译依赖:sudo apt install build-essential flex bison libssl-dev libelf-dev dwarves
  • 加载微软官方WSL配置:cp Microsoft/config-wsl .config
  • 编译内核:make -j$(nproc)(nproc为CPU核心数,加快编译速度)
  • 将生成的vmlinux文件重命名为kernel,上传到局域网服务器的指定目录(如/wsl-updates/5.15.146.1-2/)

3. 无网络主机更新流程

  • 在目标Windows主机上,从局域网服务器下载kernel文件
  • 替换到C:\Windows\System32\lxss\tools路径(先备份原文件)
  • 执行wsl --shutdown重启WSL完成更新

方案二:构建Windows离线更新包(MSI格式)

1. 准备构建环境

在一台联网的Windows机器上安装:

  • Visual Studio 2022(需勾选「Desktop development with C++」工作负载及「Windows SDK」)
  • Git
  • Python 3.x

2. 编译并打包MSI

  • 克隆WSL2内核源码:git clone https://github.com/microsoft/WSL2-Linux-Kernel.git
  • 切换到目标版本:git checkout linux-msft-wsl-5.15.146.1-2
  • 打开Visual Studio开发者命令提示符,切换到源码目录
  • 执行官方构建脚本:build-wsl2-kernel.cmd(脚本会自动完成编译并生成MSI包)
  • 若脚本未生成MSI,可手动用WiX Toolset制作:参考官方WSL更新MSI的结构,将编译好的vmlinux替换为安装包内的kernel文件,重新打包成MSI

3. 离线安装

  • 将生成的MSI文件复制到无网络Windows主机
  • 双击运行MSI,按提示完成安装(安装程序会自动替换WSL2内核文件)
  • 执行wsl --shutdown重启WSL生效

内容的提问来源于stack exchange,提问作者Frank He

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 03:05:12