可在wsl2中编译并替换linux内核,但会导致wslg失效,且必须在linux原生路径(如~/kernel_build)操作,不可在/mnt挂载点编译;需安装依赖、获取源码、下载wsl适配配置、编译bzimage、复制至windows并配置.wslconfig后重启生效。
可以直接在 wsl2 中编译并替换 linux 内核,但需注意:替换后 wslg(图形支持)会失效,且必须避开 windows 文件系统挂载路径(如 /mnt)进行编译,否则大概率失败。
准备编译环境
在 WSL Ubuntu 终端中执行以下命令安装必要工具:
sudo apt update && sudo apt install -y build-essential flex bison dwarves libssl-dev libelf-dev bc pkg-config git python3-distutils- 务必不要在
/mnt/c或其他 Windows 挂载点下操作——所有源码和构建都应在 Linux 原生路径(如~/kernel_build)中进行 - 若之前编译失败过,建议先清理残留:
rm -rf ~/kernel_build,再新建目录重新开始
获取并配置内核源码
以 v6.18.7 为例(可按需更换版本):
- 克隆稳定版源码:
git clone --depth=1 --branch=v6.18.7 https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git - 进入目录:
cd linux - 下载适配 WSL2 的配置文件:
wget -O .config https://blog-sb.abc6.fun/config_file.txt - 该配置已启用 WSL 所需的虚拟化、设备驱动及 initramfs 支持,无需手动调参
编译并部署新内核
执行编译与安装流程:
- 运行:
make -j$(nproc) bzImage—— 编译生成压缩内核镜像arch/x86/boot/bzImage - 若出现交互式配置提示,直接回车使用默认值即可
- 编译完成后,用
explorer.exe .打开当前目录的 Windows 资源管理器,将bzImage复制到 Windows 路径(如C:UsersYourNamewsl2-kernelzImage) - 在 Windows 用户目录下创建或编辑
.wslconfig文件(路径:C:Users%USERNAME%.wslconfig),写入:
kernel=C:\Users\YourName\wsl2-kernel\bzImage
注意反斜杠必须双写,且路径不能指向 System32 等受保护目录。
验证与注意事项
完成配置后重启生效:
- 在 PowerShell 中执行:
wsl --shutdown,完全终止 WSL 实例 - 重新打开 WSL 终端,运行
uname -a,输出中应包含你编译的版本号(如6.18.7) - 图形界面(WSLg)将不可用,如需 GUI 应另行配置 X Server 或使用远程桌面方案
- 若需加载自定义驱动模块,须确保内核配置中已启用对应选项(如
CONFIG_USB_SERIAL),并在编译时一并构建进内核或作为模块安装











