Skip to main content

WSL2 安装简介

· 6 min read
IceyBlackTea

Show how to install Windows Subsystem for Linux Version 2.

Also the solution of some problems.

主体内容 2021-03-05

WSL

WSL, Windows Subsystem for Linux.

WSL 作为运行在 Windows 10 上的 Linux 环境,比其他虚拟机有着更好的性能和更简便的操作,与双系统相比有能同时操作两个系统这个巨大优势。

Windows 上编写,Linux 上运行,能同时满足应用和系统两方面的需求。

WSL 2 在 WSL 1 的基础上更贴近了 Linux 系统的功能。

两者的区别可以参考官方介绍


安装 WSL 2

主要参考 Microsoft 官网文档

1. 检查运行需求

x64 系统: Version 1903 或更高,OS Build 18362 或更高

ARM64 系统:Version 2004 或更高,OS Build 19041 或更高

较低版本不支持 WSL 2,需要更新 Windows 10。

查看版本信息

你可以在 Windows Setting 设置 - System 系统 - About 关于 - Windows specifications 系统规格 中查看版本信息

2. 启用系统功能

启用 Windows feature "Windows Subsystem for Linux""Virtual Machine Platform"

在 Windows 10 控制面板的 "Turn Windows features on or off" 菜单中找到 "Windows Subsystem for Linux" 和 "Virtual Machine Platform" 选项打勾。

也可以使用系统命令启用。

使用管理员权限打开 Powershell,输入以下命令:

Powershell
# Enable the Windows Subsystem for Linux
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

# Enable Virtual Machine feature
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
快捷获取管理员权限

快捷键 Win + R 呼出 Run 运行界面后,输入 powershell,使用快捷键 Ctrl + Shift + Enter,即可使用管理员权限打开。

功能启用后需要重启以安装功能,一些机型可能需要进入 BIOS 开启 CPU 虚拟化功能。

3. 安装内核更新包

官方下载链接:

X64: WSL2 Linux kernel update package for x64 machines

ARM64: WSL2 Linux kernel update package for ARM64 machines

双击安装即可。

国内下载可能网络状态不好。

4. 设置子系统版本

默认安装的子系统版本为 WSL 1,需要修改下。

使用管理员权限打开 Powershell,输入以下命令:

Powershell
# Set WSL 2 as your default version
wsl --set-default-version 2

对于已经安装好的 WSL 1 版本的子系统,也可以使用命令转换版本。

Powershell
# Set subsystem version as WSL 2
wsl --set-version 'subsystem-name' 2

5. 安装发行版子系统

这一步最简单,直接打开 Windows Store 微软商店搜索需要的版本即可,如: Ubuntu 20.04

安装好后,启动子系统,参照说明设置 Linux 账户即可。

微软商店一般不需要系统代理。

仅使用 WSL 1

若不使用 WSL 2,仅使用 WSL 1,则仅需要启用 Windows feature "Windows Subsystem for Linux" 和在微软商店下载 Linux 发行版子系统。


可能遇到的问题

安装后无法启动

Terminal 显示 "The attempted operation is not supported for the type of object referenced. Press any key to continue..."。

这个 bug 可能已经修好了。 2021-9-23

WSL 2Windows 10 交互需要通过本地的网络代理,这个过程会加载 Winsock LSP DLL,导致其他代理软件与 WSL 2 冲突。

Proxifier 的开发人员提供了工具 NoLSP.exe 进行修复。

使用管理员权限打开 Powershell,在 NoLSP.exe 目录下输入以下命令:

Powershell
# Use NoLSP.exe
NoLsp.exe C:\Windows\system32\wsl.exe

参考资料:microsoft/WSL#4177 (comment)

下载输入命令运行后即可~

打开终端无内容

终端打开后没有内容。

WSL 2 默认使用 CMD 的终端显示内容。

如果你的 CMD 设置中勾选了 "Use legacy console(requires relaunch, affects all consoles)",就会导致该现象。

取消勾选即可。

更好的推荐是使用 Windows Terminal 来使用 CMD, Powershell, WSL~

Windows Store 微软商店下载即可~

其他问题

此处略去。

具体使用过程中,可能还有网络、磁盘等其他方面问题,请 Google 或者查看官方文档。


最后

WSL 1 还是很方便的,如果临时需要 Linux 环境就可以一键打开。

WSL 2 有多大的区别,由于与代理冲突,一开始没有找到解决办法,所以我用的不是很多,不太清楚。

后续如果有别的内容再补充吧。

如果有其他问题,可以在我的 github.io 项目的 issue 留言,欢迎提问~

感谢观看!Thank you for watching!