​ 操作系统升级到win11之后。由于想在windows下使用docker,而docker现在已经默认使用WSL2。之前系统之中的WSL需要升级WSL2。

WSL 1和WSL2的区别如下:

  • WSL 1用的是Windows内核模拟的各种系统接口。虽然可以运行大部分Linux应用,但还是有不少依赖于内核的应用是无法正常运行的——例如Docker。另外WSL 1和Windows共用文件系统、网络,有些时候会比较头疼。
  • WSL 2/Docker本质上都是Hyper-V。WSL 2是一个轻量级的Hyper-V VM;Docker for Windows如果要跑Linux镜像,会安装运行一台运行Linux的Hyper-V虚拟机,用Hyper-V的管理工具是可以看到的。

查看当前的WSL版本,在windows命令行界面运行如下命令

C:\Users\Administrator>wsl -l -v
  NAME      STATE           VERSION
* Ubuntu    Running         1

首先要确认已经BIOS中打开虚拟化,程序与功能–》启用或关闭Windows功能,已经打开的了Hyper-V等功能。

按照步骤 下载包

  1. 根据系统进行选择:
    x64:https://wslstorestorage.blob.core.windows/wslblob/wsl_update_x64.msi
    arm64:https://wslstorestorage.blob.core.windows/wslblob/wsl_update_arm64.ms
  2. 运行上一步下载的更新包。

升级WSL到WSL2

​ 在命令行窗口执行如下命令

wsl --set-version 分发版名称 版本号

分发版名称是根据在微软应用商店已经安装的版本,具体名称需要自己确认。版本号1对应的就是WSL1,2为WSL2.

该命令执行结果需要等待转制。

C:\Users\Administrator>wsl --set-version Ubuntu 2
正在进行转换,这可能需要几分钟时间...
有关与 WSL 2 的主要区别的信息,请访问 https://aka.ms/wsl2

如果出现Please enable the Virtual Machine Platform Windows feature and ensure virtualization is enabled in the BIOS,则说明BIOS中虚拟机未打开。

参考文档 安装 WSL |微软文档 (microsoft)

更多推荐

Windows的linux子系统:WSL升级WSL2