WSL
Windows Subsystem for Linux
安装
安装过程中用到的一切命令行需要以管理员身份运行。
首先需要开启『Windows 对 WSL 的支持』,提供两种方案:
-
用 pwsh 开启:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux -
在桌面系统中开启。在系统搜索栏中输入『启用或关闭 Windows 功能』,打开功能管理后勾选支持。
接着需要安装 WSL,提供两种方式:
-
使用命令行(推荐):
wsl --install -
微软商店中下载
选择 Linux 系统,安装镜像。(WSL 命令稳定联网需要科学手段):
wsl -l -o查看可安装镜像wsl --install -d <distro name>
安装好后自动进入系统配置,配置完毕后 WSL 1 就装好了。
WSL 1 不需要开启 Hyper-V
如果需要安装 WSL 2,则需要额外的步骤。
首先需要启用系统的 Hyper-V 功能,参考:微软-Win10 启用 Hyper-V
值得一提的是 Windows 系统不论什么版本,在首次安装后默认是打开 Hyper-V 选项的。
我自己用的 Windows 家庭版,系统被安装后安装 Docker Desktop,用
wsl -l -v会找到两个用于构建 docker 服务的镜像:NAME STATE VERSION docker-desktop Stopped 2 docker-desktop-data Stopped 2他们使用的就是 WSL2 引擎。同时 Docker Desktop 也会默认采用"WSL2 based engine"。
另外,附上微软对"Hyper-V"的说明:
Hyper-V 是基于虚拟机监控程序的虚拟化技术。 Hyper-V 使用 Windows 虚拟机监控程序,后者需要具有特定功能的物理处理器。
对于不同版本的 Windows,启用 Hyper-V 功能的方式不同。
对于专业版,提供两种方式:
-
直接在『启用或关闭 Windows 功能』勾选 Hyper-V ,重启后生效。
-
使用 pwsh-CLI 启动:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All -
使用 cmd-CLI 启动:
DISM /Online /Enable-Feature /All /FeatureName:Microsoft-Hyper-V
对于家庭版(我的版本):Windows 关闭了对家庭版的"Hyper-V"官方支持,因此需要以特殊手段启动,参考:Windows10没有Hyper-V的解决办法
创建以下 cmd 脚本,并以管理员身份运行,下载 Hyper-V 功能的支持组件:
pushd "%~dp0"
dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt
for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
del hyper-v.txt
Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL
下载完毕后,Windows 的功能中就注册了 Hyper-V ,专业版的打开方式就可以使用了。
有多种方式可以查看自己电脑的 Hyper-V 功能是否开启:
- 启动任务管理器,在『性能』中查看『虚拟化』是否启用
systeminfo查看系统信息,最下方会有 Hyper-V 的相关信息
至此 Hyper-V 功能已经打开,我们还需要启动 Hyper-V 服务:
bcdedit /set hypervisorlaunchtype auto # 开启服务
bcdedit /set hypervisorlaunchtype off # 关闭
# bcdedit /set hypervisorlaunchtype on # 也许是开启?
重启后服务成功开启。
关于"Hyper-V"与"虚拟化"的关系,暂时不是很明确,猜测开启"Hyper-V"的前提是打开虚拟化,但两者并不等价。
关于启用虚拟化,可以在 BIOS 中开启『Virtualization虚拟化』,『联想小新 pro14』在开机时反复按
F2键即可进入BIOS。
环境适配
除了 WSL,系统环境中一般还有很多其他的虚拟化服务,他们或多或少都对 Hyper-V 的开启或关闭有要求,例如:
-
Docker,如果使用 Docker Desktop 且使用基于 WSL2 的引擎,则需要开启 Hyper-V。
-
虚拟机平台,包括 Vmware、Virtubox 与一众安卓模拟器。他们起初都需要关闭 Hyper-V 才能正常运行。
但是后来部分软件的引擎得到更新,例如 Vmware 与雷电模拟器,他们可以在开启 Hyper-V 的系统中正常运行。
基本使用
wsl-cli 的联网功能需要科学手段
Commands
wsl -l -v # 查看已安装的 wsl 系统版本信息
wsl -s <ditro> # 设置默认分发
--setdefault <distro>
wsl --set-default-version <ver> # 设置默认 WSL 版本
wsl --set-version <distro> <ver> # 设置某分发的WSL版本
wsl --update # 更新 WSL