系统极客一直在努力
专注操作系统及软件使用技能

Windows 11:WSL 2 安装和管理指南,3 种方法任你选

Windows 11

如果我在十几年前跟你说「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 只需要较少的系统资源,就能实现 Windows 和 Linux 之间的无缝集成。虽然 WSL 2 也使用了虚拟化技术,但它会自动在后台运行和管理,无需用户手动配置或维护(要维护也可以)。

WSL 2 主要面向将 Windows 作为生产力工具,但又希望在 Linux 环境中完成工作的用户和开发人员。你可以运行grepawksed等命令行工具,以及依赖这些工具的 Bash 脚本。不仅如此,你还可以从 WSL 命令行启动 Windows 应用,甚至在 Windows 上运行 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
使用命令行安装 WSL 2

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

初始化 Ubuntu 系统
初始化 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
使用 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
使用「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 1WSL 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 版本
  • 如果更新之后遇到问题或出现故障,可以回滚到上一版本:
wsl --update --rollback

如果你觉得手动更新比较麻烦,可以在「Windows 更新」中设置 WSL 自动更新:

1使用Windows + I快捷键打开「设置」>「Windows 更新」>「高级选项」。

2打开「接收其他 Microsoft 产品的更新」开关,这样每当有新的 WSL 修订版本发布时,就会随 Windows 11 自动更新。

开启 Windows Update 自动更新 WSL 版本
开启 Windows Update 自动更新 WSL 版本

切换 WSL 默认版本

要切换 WSL 默认版本也非常容易,在命令行中执行以下命令即可:

  • 切换为 WSL 2:
wsl --set-default-version 2
  • 切换为 WSL 1:
wsl --set-default-version 1
切换 WSL 默认版本
切换 WSL 默认版本

如无特殊需求,推荐始终使用 WSL 2,以获得最佳功能和性能。

使用 WSL 在 Windows 11 上管理 Linux 发行版

安装 Linux 发行版

在 Microsoft Store 应用商店中,有很多主流 Linux 发行版可供选择:

1通过以下链接直接进行安装,或者在 Microsoft Store 中搜索需要的发行版进行安装:

通过 Microsoft Store 安装 WSL 发行版
通过 Microsoft Store 安装 WSL 发行版

2安装好后点击「打开」,在弹出的命令行窗口中设置好 Linux 用户账户和密码,等待系统初始化完成。

安装完成后点击「打开」
安装完成后点击「打开」
在命令提示中完成初始化
在命令提示中完成初始化

3此外,你也可以执行以下命令,查看有哪些可用的发行版,然后再进行安装:

wsl --list --online # 查看可用 Linux 发行版
wsl --install --distribution <DistroName> # 安装指定 Linux 发行版
使用命令查看并安装可用 WSL 发行版
使用命令查看并安装可用 WSL 发行版

4安装完成后,在命令行窗口中设置 Linux 用户账户和密码,完成系统初始化。

设置默认 Linux 发行版

如果你在 Windows 11 上为 WSL 安装了多个 Linux 发行版,可以通过以下步骤来指定默认发行版:

1右键点击「开始」菜单,选择「终端管理员」,以管理员权限打开「Windows 终端」。

2在 Windows PowerShell 或「命令提示符」窗口中,执行以下命令:

wsl --list --verbose # 查看已安装的发行版、WSL 版本信息和当前状态
wsl --set-default <DistroName> # 重新指定默认发行版
手动指定默认 WSL 发行版
手动指定默认 WSL 发行版

同时运行多个 Linux 发行版

多发行版同时运行
多 WSL 发行版同时运行

在 Windows 11 中安装多个 Linux 发行版后,即便没将其设置为默认发行版,也可以随时启动来使用。

  • 在「开始」菜单的「所有应用」列表,或「推荐的项目」中打开指定的 Linux 命令行窗口。
通过「开始」菜单启动指定发行版
通过「开始」菜单启动指定发行版
  • 右键点击「开始」菜单,选择「终端管理员」,在「Windows 终端」的「打开新标签页」下拉菜单中打开特定 Linux 的命令行窗口。
在「Windows 终端」中与指定发行版直接交互
在「Windows 终端」中与指定发行版直接交互

移动 Linux 发行版存储位置

以下方法仅适用于 WSL 2.3.11 及更高版本。

默认情况下,WSL 会将 Linux 发行版存放在 C 盘的以下路径,其中包含了发行版的根文件系统和相关配置文件:

%USERPROFILE%\AppData\Local\\Packages\<发行版的包名>\
WSL 发行版默认存放路径
WSL 发行版默认存放路径

以前,移动发行版需要手动导出 → 将其作为新发行版导入 WSL → 然后删除原来的发行版,这 3 个步骤。但从 WSL 2.3.11 开始,微软引入了更简单的--move参数来移动发行版的底层存储。

例如,要将 Ubuntu 22.04 实例移动到 D 盘的一个专用 WSL 文件夹,可以使用以下命令:

1列出已安装的发行版:

wsl --list

2将特定发行版移动到指定路径:

wsl --manage Ubuntu-22.04 --move <path>

3移动成功后,会有通知提示。

通过 wsl 的 --move 参数直接移动特定发行版
通过 wsl 的 –move 参数直接移动特定发行版

Windows 11 和 Linux 文件系统互访

使用 WSL 的一大优势是:Windows 11 和 Linux 之间的文件系统能够无缝互访,比在传统虚拟机中使用 Linux 要方便得多。让我们来看看如何实现这种互访:

在 Windows 11 中访问 Linux 文件系统

1使用Windows + E快捷键打开「文件资源管理器」。

2在左侧导航窗格中找到并点击「Linux」,就可以像浏览 Windows 文件一样浏览 Linux 文件了。

在 Windows 11 中浏览 Linux 文件夹
在 Windows 11 中浏览 Linux 文件夹

在 Linux 中访问 Windows 11 文件系统

1在 Linux 中打开「终端」,执行以下命令即可进入 Windows 11 的 C 盘根目录:

cd /mnt/c/

2使用ls命令列出目录和文件,你会看到熟悉的 Windows 目录和文件结构。

在 Linux 中访问 Windows 11 指定驱动器
在 Linux 中访问 Windows 11 指定驱动器

在 Linux 中,访问 Windows 11 其他盘符的方式也类似,例如 D 盘可以使用/mnt/d/

赞(12) 赞赏

评论 2

  1. #1

    如果要使用WSL2,在方法3中还需要勾选「虚拟机平台」选项。只勾选「适用于 Linux 的 Windows 子系统」只能使用WSL1。

    unknown1年前 (2023-06-16)回复
    • 已经勘误,感谢您的提醒。

      海猴子1年前 (2023-06-16)回复

微信赞赏