Windows WSL 环境使用

2019-02-21 linux

所谓的 WSL 就是 Windows Subsystem for Linux 的缩写,意思是 Linux 版的 Window 子系统,可以在 Windows 上运行 Linux 系统。

常用命令

在 PowerShell 中执行如下命令。

----- 设置默认为 WSL2,如果已经安装则需要升级
wsl --set-default-version 2
wsl --set-version Ubuntu-20.04 2
wsl --set-version CentOS8-stream 2
----- 在线的可安装版本,不带online则是当前已经安装版本
wsl --list --online
----- 查看当前运行WSL版本
wsl --list --verbose
----- 关闭其中某个子系统,可以简写为 -t
wsl --terminate Ubuntu
wsl --shutdown Ubuntu
----- 通过命令启动发行版本
wsl -u root -d CentOS8-stream
wsl --user root --distribution CentOS8-stream
----- 查看状态、更新、删除
wsl --status
wsl --update
wsl --unregister centos8

注意,如果在 --set-version 时没有显示成功的标识,那么意味着当前可能是 WSL1 需要升级到 WSL2 版本。

从 WSL1 升级到 WSL2

关于两者的对比可以参考 比较WSL版本 中的介绍,简单来说 WSL1 是简单的模拟,而 WSL2 可认为是完整的 Linux 内核,例如,可以使用 systemctl 命令。

管理员身份运行 PowerShell 终端,然后执行如下命令。

----- 开启Win10虚拟子系统特性
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
----- WSL2需要开启Win10的虚拟机平台特性
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
----- 这里稳妥点还是要开启Hyper-V,不过这会导致Vmware软件用不了
dism.exe /Online /Enable-Feature /All /FeatureName:Microsoft-Hyper-V
----- 运行WSL命令行,设置默认版本为2,因为目前默认都为WSL1,需要手动切换
wsl --set-default-version 2

最好是要重启一下,可以参考下载 Linux 内核更新包 Download the Linux Kernel Update Package

CentOS

可以从 CentOS-WSL 下载,解压后直接双击图标运行即可。

其中的安装命令还可以在 PowerShell 中执行,如下是常用命令:

----- 设置默认用户
CentOS8.exe config --default-user root
----- 卸载
CentOS8.exe clean

如果镜像使用了 HTTPS 路径,那么可能会出现类似 SSL certificate problem: unable to get local issuer certificate 报错,可以在 /etc/yum.conf 文件中增加 sslverify=0 参数。