鉴于 Microsoft 官方并没有提供官方的 CentOS8 的 WSL2 包,甚至 CentOS 的官方也并没有提供对应的包(Ubuntu 是微软和官方都有提供的),联想到 WSL2 和 Docker 在某种意义上是十分类似的,rootfs 都是核心,猜测可能会有方法使用官方提供标准包更广泛的 Docker 包的 rootfs 直接建立 WSL2 应用,经过摸索,发现可以使用 LxRunOffline 搞定,遂记录。
环境准备
安装和启用 WSL2
启用功能可能会需要重启。
1 | # 启用 WSL |
下载 WSL2 内核更新包并安装。
安装 LxRunOffline
安装 Chocolatey
管理员运行 Powershell
1 | 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、设置默认用户和修改环境变量等操作。
1 | choco install lxrunoffline |
安装 Linux 发行版的 Docker rootfs 包为 WSL2
以下以 CentOS 为示例,其他发行版可以参照。
下载 rootfs 包
访问CentOS 的官方 Docker rootfs 包仓库,找到 CentOS8 最新版本的包在 CentOS-8-x86_64 分支,下载备用。
安装
1 | LxRunOffline install -n CentOS8 -d D:\WSL\CentOS8 -f .\centos-8-x86_64.tar.xz |
查看效果并设置为默认wsl
1 | wsl -l |
进入 WSL 测试