坚持
  • 微信

当前位置:首页 > 应用服务 > WINDOWS系统 >

WSL1升级为WSL2

作者:管理员 时间:2022-04-09 阅读数: 2832人阅读

前言

    我是做PHP开发的, 一直以来使用的都是PhpEnv这种环境来做开发, 后来一些经手的项目, 有些使用swoole的 , 不用linux真的是不行, 最初是直接在测试服务器上在线编辑调试, 但是这有多痛苦只有在线编辑过的人才能深有体会.

为了线下开发调试, 我使用了WSL, 安装使用都是很OK的, 既然linux有了, 那上个宝塔岂不是更方便? 所以我也直接把宝塔装在了wsl上, 一切都没有什么异常, 而且可以直接选择win盘里的文件夹作为项目根目录,这些都正常, 但当我搭建完, 要开始访问的时候, 突然发现, 卡, 巨卡, 十分卡!

wsl的IO是有问题的. 在其内部可能感受不到, 但在两系统 交互时, 非常的卡, 基本处于残废的状态 , 想作为开发环境日常使用根本不可能!

正文

    我大概率是要开始放弃了, 我开始寻求其它方式 , 这时候就发现了WSL2 , 没错, 现在加入win10预览通道, 升级完之后就可以安装WSL2了, 相比一代, 极大的提升了过去糟糕的IO性能, 亲自试了一下, 感知很明显, 就这样我激动的难以言表, 开发者的福音就要到了吗?

先安装wsl,可以查看我之前的安装教程。

升级至wsl2

查看当前WSL版本号

打开PowerShell,执行命令

wsl -l -v

可以看到WSL版本号。如果WSL版本号是1,则需要进行一些操作,才能升级到WSL2。

1. 检查运行WSL2的系统要求

WSL2对系统版本有一定要求,键盘选择Win + R,输入winver,点击回车,便可查看当前系统的详细版本。对照下图,看一下是否满足要求,如果不满足要求,则需要对系统进行升级。

1.jpg

2. 启用虚拟机功能

WSL2需要使用虚拟机,因此需要在系统中启动虚拟机功能。

2.jpg

重新启动系统。

启动系统后,检查一下上图中红框圈出内容是否均以打对勾;若没有,则需要打对勾并点击确定。

如果没有Hyper-V这一项,请百度查询安装Hyper-V。

在检查一下任务管理器中-性能-CPU中的虚拟化是否已开启,如果未开启

a、在开机的时候多按几次F2,就进入BIOS,然后选择在上方的【Configuration】选项,然后将最下方的【Intel Virtual Technology】,设置为【Enable】的状态,然后就可以按下F10保存退出,重启进入系统即可;

b、如果是AMD平台同样是在BIOS中选择【Configuration】的选项,将【SVM Support】的选项设置成Enable的状态,同样是按下【F10】保存退出即可;

3. 下载 Linux 内核更新包

根据系统进行选择:

x64:https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
arm64:https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_arm64.ms

 运行安装上一步下载的更新包。


4. 设置分发版版本

打开PowerShell,执行命令 :

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

例如,将Centos 设置为WSL2的命令为 

wsl --set-version Centos 2

该步骤会花一些时间,如果安装成功,会出现转移成功。

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

说明

WSL2 是基于虚拟机的,所以可以在后台运行各种任务,比如 Docker 等等,但是带来的相应问题就是会占用一部分内存,使用

wsl --shutdown

可以再不使用的时候停止它,以节约资源。