如果我在十几年前跟你说「microsoft love linux」,你肯定觉得我鬼打墙了,windows 和 linux 可一直都是竞争对手。时任微软 ceo steve ballmer 还曾公开宣称 linux 是「癌症」,毕竟 linux 作为免费、开源的 windows 替代品,抢走了微软不少的市场份额和营收。

后来,可能是为了与 vmware 等虚拟化厂商竞争,以及发展云计算平台的需要,微软在 hyper-v 虚拟化平台上增加了对 linux 的原生支持,让 windows 也可以在 hyper-v 虚拟机中运行 linux 系统。但是,在 hyper-v 中运行 linux 虚拟机需要消耗大量的系统资源,而且宿主机(host os)与虚拟机(guest os)之间的交互也比较麻烦。
什么是 wsl 2?
- 时间来到 2017 年,事情正在起变化。微软正式发布了「适用于 linux 的 windows 子系统」,即人们熟知的 windows subsystem for linux,简称 wsl。
- 在 2019 年,微软又基于 hyper-v 架构的部分功能,推出了全新的 wsl 2。它能够在一个高度优化的虚拟化中运行完整的 linux 内核。
wsl 2 的系统要求
- wsl 2 使用了 hyper-v 架构的一部分功能,但对 windows 11 的版本并没有限制。家庭版、教育版、专业版和企业版都可以安装。
- 除了
x86_64架构外,wsl 2 也支持arm处理器。但要在基于 arm 的设备上运行,所使用的 linux 系统也必须是 arm 版本。 - 如果你使用的虚拟机软件支持嵌套虚拟化,wsl 2 也可以在虚拟机中的 windows 上运行。
在 windows 11 上安装 wsl 2
方法 1:使用 wsl 命令安装
在 windows 11 中,安装 wsl 2 最简单的方法是使用命令行:
1、右键点击「开始」菜单,选择「终端管理员」,以管理员权限打开「windows 终端」。
2、在 windows powershell 或「命令提示符」交互窗口中,执行以下命令:
wsl --install
3、以上命令会启用 wsl 2 所需的所有功能,并默认下载 ubuntu 发行版。安装需要几分钟,完成后会提示你重启 windows。

使用命令行安装 wsl 2
4、重新登录 windows 11 后,系统会自动弹出一个命令行窗口,以继续安装并启用 ubuntu。按命令提示设置好你的 linux 用户账户和密码后,即可开始使用。

初始化 ubuntu 系统
方法 2:使用 powershell 安装 wsl 2
我们也可以通过 powershell 来安装 wsl 2:
1、使用windows + r快捷键打开「运行」对话框,输入powershell,然后按ctrl + shift + enter,以管理员权限打开 powershell。
2、执行以下命令启用 wsl 和虚拟机平台功能:
enable-windowsoptionalfeature -online -featurename $("microsoft-windows-subsystem-linux","virtualmachineplatform")3、安装完成后,键入y重启计算机。

使用 powershell 安装 wsl 2
4完成以上步骤后,需要通过 microsoft store 获取要使用的 linux 发行版(后面会有专门介绍)。
如果在安装 wsl 时没有选择安装 virtual machine platform,那么将使用 wsl 1。
方法 3:通过「windows 功能」启用 wsl 2
如果你更习惯使用图形界面,也可以通过「windows 功能」在 windows 11 中启用 wsl 2:
1、使用windows + r快捷键打开「运行」对话框,执行optionalfeatures打开「windows 功能」。
2、勾选「适用于 linux 的 windows 子系统」和「虚拟机平台」,然后点击「确定」。

使用「windows 功能」安装 wsl 2
3、安装完成后,点击「立即重新启动」。

安装好后,点击立即重新启动
4、系统重启完成后,请通过 microsoft store 来获取要使用的 linux 发行版(后文会有专门介绍)。
如果在安装 wsl 时没有勾选「虚拟机平台」,那么将使用 wsl 1。
在 windows 11 上管理 wsl 版本
wsl 1 和 wsl 2 功能对比
- wsl 1 是一个轻量级的 linux 兼容性层,它会将 linux 系统调用转换为 windows nt 内核调用来实现 linux 应用程序的运行,但不支持完整的 linux 内核功能。
- wsl 2 使用真正的 linux 内核,并且支持 docker 等其他高级功能。
| 功能 | wsl 1 | wsl 2 |
|---|---|---|
| windows 和 linux 之间的集成 | ✅ | ✅ |
| 启动时间短 | ✅ | ✅ |
| 与传统虚拟机相比,占用资源少 | ✅ | ✅ |
| 可以与当前版本的 vmware 和 virtualbox 一起运行 | ✅ | ✅ |
| 托管 vm | ❌ | ✅ |
| 完整的 linux 内核 | ❌ | ✅ |
| 完全的系统调用兼容性 | ❌ | ✅ |
| 跨 os 文件系统的性能 | ✅ | ❌ |
| systemd 支持 | ❌ | ✅ |
| ipv6 支持 | ✅ | ✅ |
更新 wsl 版本
wsl 的更新版本会首先发布到 github,然后会打包到 windows update 进行分发。你可以在 windows 11 中手动或自动更新 wsl 版本:
1、右键点击「开始」菜单,选择「终端管理员」,以管理员权限打开「windows 终端」。
2、在 windows powershell 或「命令提示符」窗口中,执行以下命令:
- 查看当前 wsl 版本:
wsl --version
- 手动更新 wsl 版本:
wsl --update
- 安装最新的预发行版(可选):
wsl --update --pre-release

查看当前并更新 wsl 版本
- 如果更新之后遇到问题或出现故障,可以回滚到上一版本:
wsl --update --rollback
如果你觉得手动更新比较麻烦,可以在「windows 更新」中设置 wsl 自动更新:
1、使用windows + i快捷键打开「设置」>「windows 更新」>「高级选项」。
2、打开「接收其他 microsoft 产品的更新」开关,这样每当有新的 wsl 修订版本发布时,就会随 windows 11 自动更新。

开启 windows update 自动更新 wsl 版本
切换 wsl 默认版本
要切换 wsl 默认版本也非常容易,在命令行中执行以下命令即可:
- 切换为 wsl 2:
wsl --set-default-version 2
- 切换为 wsl 1:
wsl --set-default-version 1

切换 wsl 默认版本
如无特殊需求,推荐始终使用 wsl 2,以获得最佳功能和性能。
使用 wsl 在 windows 11 上管理 linux 发行版安装 linux 发行版
在 microsoft store 应用商店中,有很多主流 linux 发行版可供选择:
1、通过以下链接直接进行安装,或者在 microsoft store 中搜索需要的发行版进行安装:
- ubuntu 22.04 lts
- opensuse leap 15.5
- suse linux enterprise 15 sp5
- kali linux
- debian linux
- fedora wsl
- deepin wsl

发表评论