鉴于 Microsoft 官方并没有提供官方的 CentOS8 的 WSL2 包,甚至 CentOS 的官方也并没有提供对应的包(Ubuntu 是微软和官方都有提供的),联想到 WSL2 和 Docker 在某种意义上是十分类似的,rootfs 都是核心,猜测可能会有方法使用官方提供标准包更广泛的 Docker 包的 rootfs 直接建立 WSL2 应用,经过摸索,发现可以使用 LxRunOffline 搞定,遂记录。
环境准备
安装和启用 WSL2
启用功能可能会需要重启。
# 启用 WSL
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
# 启用 VMP
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
# 设置 WSL2 为默认版本
wsl --set-default-version 2
下载 WSL2 内核更新包并安装。
安装 LxRunOffline
安装 Chocolatey
管理员运行 Powershell
Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
使用 Chocolatey 安装 LxRunOffline
LxRunOffline 是用于管理适用于 Linux 的 Windows 子系统 (WSL) 的全功能实用程序,可以安装任意发行版到任意目录、转移已安装的 WSL 目录、备份 WSL、设置默认用户和修改环境变量等操作。
choco install lxrunoffline
安装 Linux 发行版的 Docker rootfs 包为 WSL2
以下以 CentOS 为示例,其他发行版可以参照。
下载 rootfs 包
访问 CentOS 的官方 Docker rootfs 包仓库,找到 CentOS8 最新版本的包在 CentOS-8-x86_64 分支,下载备用。
安装
LxRunOffline install -n CentOS8 -d D:\WSL\CentOS8 -f .\centos-8-x86_64.tar.xz
查看效果并设置为默认 wsl
wsl -l
wsl -s CentOS8
WSL 安装
进入 WSL 测试
WSL 测试
参考链接: https://blog.wayneshao.com/posts/46310.html