像专业人士一样在 Windows 11 上使用 WSL2 运行 Linux 应用程序

  • WSL2 将真正的 Linux 内核集成到 Windows 11 中,提供高性能,并几乎完全兼容 Linux 工具和服务。
  • 发行版的安装和管理可通过 Microsoft Store 或 PowerShell 完成,并支持多个发行版并行运行。
  • WSLg 允许您运行带有原生窗口的 Linux 图形应用程序,并将其集成到 Windows 开始菜单、任务栏和剪贴板中。
  • 只要采取良好的安全、更新和备份措施,WSL2 就非常适合开发、Docker 和数据科学。

在 Windows 11 上使用 WSL2 安装 Linux 应用程序

如果你每天都使用 Windows 系统,但又很想尝试 Linux 系统,那么你无需再让自己的生活变得复杂了。 双启动、不寻常的分区或重量级虚拟机微软长期以来一直提供 WSL 和 WSL2 子系统,它允许您运行 GNU/Linux 发行版,几乎就像运行其他 Windows 10 和 Windows 11 应用程序一样。最棒的是:现在您还可以启动集成到 Windows 桌面中的 Linux 图形用户界面 (GUI)。

接下来您将看到如何 借助 WSL2,可以在 Windows 11 上使用 Linux 应用程序。它涵盖了系统要求、安装过程、兼容发行版、与 Docker 和 Visual Studio Code 等工具的集成,以及您可能遇到的常见问题。无论您是好奇的用户,还是从事开发或系统管理工作的人员,本书旨在提供全面的概述。

WSL是什么?WSL2为Windows 11带来了什么?

适用于 Linux 的 Windows 子系统 (WSL) 是 Windows 10 和 Windows 11 的一项功能,它允许您运行…… GNU/Linux 发行版(Ubuntu、Debian、Fedora、Kali、SUSE、Alpine 等)直接运行在 Windows 之上无需在单独的分区上安装 Linux,也无需使用传统的虚拟机。

第一个版本 WSL1 提供了一个兼容层,可以将 Linux 内核调用转换为 Windows 内核调用。它对于以下方面非常有用: 使用 bash、控制台工具和开发实用程序但是,它存在性能限制,与某些内核函数以及 Docker 等工具不兼容。

微软通过 WSL2 实现了重大飞跃:现在…… 在基于 Hyper-V 的超轻量级虚拟机中运行真正的 Linux 内核从用户的角度来看,你仍然会看到一个终端,但其下是一个完整的 Linux 系统,包含:

  • 提升了磁盘和网络性能尤其是在高强度 I/O 操作中。
  • 与原生 Linux 工具和实用程序几乎完全兼容其中包括许多需要访问内核的程序。
  • 更强有力的支持 Docker 容器 以及现代开发环境。

Windows 11 已经默认将 WSL2 作为选项,因此 大多数用户只需要一条命令即可准备好 Linux 环境。 在微软系统内部进行操作。

Linux 上的 Jotta-cli
相关文章:
Linux vs Windows:每种操作系统的优缺点

WSL 和 WSL2 的主要区别

虽然乍一看 WSL 和 WSL2 很相似,但其内部存在一些重要的变化,这些变化会影响到它们。 性能、兼容性和工作方式:

  • Windows-Linux集成WSL 和 WSL2 都允许从 Linux 访问 Windows 文件系统,反之亦然,共享路径并启动跨系统命令。
  • 起始速度这两个版本的启动速度都比传统虚拟机快得多;使用 WSL2,通常只需一两秒钟即可准备好发行版。
  • 资源使用WSL 和 WSL2 消耗的资源比完整的虚拟机少得多;WSL2 只加载内核以及发行版运行所需的资源。
  • 内核和原生兼容性WSL1 中没有真正的 Linux 内核,这导致一些底层工具无法正常工作;而 WSL2 中则有。 完整内核,具有原生支持 适用于许多高级实用程序。
  • 虚拟机管理WSL2运行在Windows管理的Hyper-V虚拟机上;用户无需进行复杂的配置,但 它受益于加速虚拟化.

实际上,如果你想与……合作 Docker、现代开发环境、数据科学或大量使用磁盘或网络资源的工具WSL2 显然是更好的选择。WSL1 在配置非常低的系统或简单的控制台任务中或许仍然适用。

在 Windows 11 上使用 WSL 和 WSL2 的要求

任何较新的 Windows 10 或 11 系统都可以启用 WSL1,但要享受其带来的乐趣,则需要安装其他操作系统。 Windows 上的 WSL2 和 Linux 图形应用程序 必须满足一些最低版本要求:

  • x64 系统Windows 10/11 版本 1903 或更高版本,WSL2 版本 18362 或更高版本。
  • ARM64 设备Windows 10/11 版本 2004 或更高版本,内部版本号 19041 或更高。

如果您的 Windows 版本早于 18362, 您将无法使用 WSL2在这种情况下,您需要使用 Windows 更新助手或从 Windows 设置中进行更新。

要查看您的系统具体版本,您可以使用 按下 Windows + R 键,输入“winver”,然后按 Enter 键。在那里你会看到版本、汇编和版本号。

除了 Windows 版本之外,WSL2 正常运行还需要:

  • 特点 虚拟机平台(VirtualMachinePlatform) 已启用。
  • 计算机的BIOS/UEFI中已启用虚拟化功能。
  • 以Linux图形用户界面应用程序为例, 支持 vGPU 的更新版显卡驱动程序 以及硬件加速的 OpenGL。

如何在 Windows 11 上启用 WSL2

在 Windows 11 中,有两种主要方法可以激活该子系统: 通过图形界面 o 通过命令行 使用 PowerShell。两者最终都会到达同一个地方,所以选择最适合你的方式即可。

在 Windows 11 上使用 WSL2 安装 Linux 应用程序

从 Windows 界面激活 WSL2

如果您更喜欢通过菜单逐步操作,可以按如下方式启用子系统:

  1. 在“开始”菜单的搜索框中,输入 “打开或关闭 Windows 功能” 然后进入控制面板中的相应选项。
  2. 在功能列表中,它标记 “适用于 Linux 的 Windows 子系统”在许多情况下,选择与以下选项相关的选项也是明智之举: 虚拟机平台.
  3. 接受这些改变,让它们生效, 重新启动计算机 当我问。

重启后即可使用 WSL,但通常强烈建议使用 WSL。 强制默认版本为 WSL2 从 PowerShell 来看,我们稍后会看到。

使用 PowerShell 命令激活 WSL2

如果你不害怕游戏主机,Windows 10(自 2004 年起)和 Windows 11 允许你一次性安装所有程序:

  1. 在“开始”菜单中搜索“PowerShell”,右键单击它,然后选择 “以管理员身份执行”.
  2. 在终端类型 wsl –安装 并按 Enter。
  3. 等待安装完成并 手动重启 Windows 如果他不是独自一人完成这件事的话。

通过该命令,系统下载 WSL 内核,启用必要功能并安装默认发行版 (通常是 Ubuntu)。重启后,初始发行版设置程序将打开,并要求您创建 Linux 用户名和密码。

为了明确表明您要使用 WSL2 而不是 WSL1,建议您在 PowerShell 中(以管理员身份)运行以下命令: wsl --set-default-version 2因此,您安装的所有新发行版都将直接在 WSL2 上创建。

在 WSL2 中安装和管理 Linux 发行版

子系统激活后,您仍然没有一个可直接使用的发行版,或者至少没有一个超出默认安装范围的发行版。WSL 的优势在于您可以…… 在同一台 Windows 系统上安装多个独立的 Linux 发行版 并根据您的需要使用它们。

可在 Microsoft Store 中找到的发行版

获取 WSL2 发行版的官方且最简单的方法是通过…… 微软商店您可以在这里搜索和下载各种内容:

  • Ubuntu (18.04 LTS、20.04 LTS、22.04 LTS 等)。
  • Debian GNU / Linux.
  • WSL的Fedora Remix.
  • 卡利Linux.
  • openSUSE Leap.
  • SUSE Linux Enterprise Server.
  • 高山WSLPengwin、Pengwin Enterprise、Raft 以及其他针对不同用途的变体。

要安装发行版,只需打开商店即可。 按名称搜索(例如,“Ubuntu”)前往应用程序页面并点击“安装”。安装完成后,您将在“开始”菜单中看到一个发行版图标,就像其他应用程序一样。

首次打开时,发行版将完成安装并询问您 Linux 用户名和密码 (这些配置不一定需要与 Windows 的配置完全一致),并且会准备好文件系统。完成这些步骤后,您的计算机上就拥有了一个功能齐全的 Linux 环境。

检查并更改发行版的 WSL 版本

您可以安装多个发行版,甚至可以有些运行在 WSL1 上,有些运行在 WSL2 上。要查看每个发行版的状态,请打开 PowerShell 并运行以下命令。 wsl -l -v该命令将显示一个列表,其中包含:

  • 发行版名称。
  • 关联的 WSL 版本(1 或 2).
  • 当前状态(运行中或已停止)。

如果您发现自己喜欢的发行版是 WSL1 版本,并且想要体验 WSL2 的改进,可以使用以下命令将其转换: wsl –set-version DistroName 2这个过程可能需要一段时间,但完成后,您会收到类似“转换完成”的消息,并且该发行版现在可以在 WSL2 上运行。

此外,如果您想直接从 PowerShell 或 CMD 启动特定发行版,可以使用以下方法: wsl -d 发行版名称或者直接从“开始”菜单启动快捷方式。

在 Windows 终端中使用 Ubuntu(或其他发行版)

Windows 11 包含一个非常有趣的应用程序,专为使用命令行的人员设计: Windows终端这是一个现代化的终端,允许您同时使用 PowerShell、CMD 和不同的 WSL 发行版打开多个选项卡和面板。

它的优点包括: 改进的 GPU 加速文本渲染支持 Unicode 和 UTF-8,能够创建自己的主题,自定义颜色、背景和键盘快捷键,当然还可以为每个已安装的 Linux 发行版创建特定的配置文件。

您可以配置 Windows 终端,而不是单独使用“Ubuntu”或“Debian”应用程序。 在新标签页菜单中直接显示您的发行版从而将整个命令行集中在一个组织良好的窗口中。

在 Windows 11 上使用 WSLg 运行 Linux 图形用户界面 (GUI) 应用程序

WSL2 最强大的新功能之一是它现在允许您运行 Linux桌面应用程序(X11和Wayland) 得益于 WSLg,这些工具已集成到 Windows 系统中。这意味着您可以打开编辑器、媒体播放器、文件管理器和其他工具,它们都拥有独立的窗口、任务栏图标,并且使用体验接近原生应用。

集成非常完善:您可以 从“开始”菜单启动应用程序 在 Windows 系统中,将它们固定到任务栏,使用 Alt+Tab 键在它们和 Windows 应用程序之间切换,并使用 在两个世界之间复制粘贴 没有并发症。

使用 Linux GUI 应用程序的要求

要使用 WSLg 和 Linux 图形应用程序,您需要满足一些额外的最低要求:

  • 进去吧 Windows 10 版本 19044 或更高版本 或在任何更新的 Windows 11 系统上运行。
  • 已经安装了一个 支持 vGPU 的图形驱动程序 这样就可以在 WSL 中利用 OpenGL 加速功能。

通常情况下,如果你的 Windows 11 系统是最新版本,并且驱动程序也比较新, 你不需要做任何特别的事情在较旧的电脑上,您可能需要更新驱动程序或系统。

在新安装的 WSL 上安装 GUI 支持

如果您从未在计算机上配置过 WSL,并且是在最新版本的 Windows 系统上从头开始,那么我们之前看到的命令就足够了:

在具有提升权限的 PowerShell 中运行 wsl –安装 然后重启计算机。重启后,Windows 将安装内核、WSL2、WSLg 和一个默认发行版(通常是 Ubuntu)。

完成Ubuntu初始设置(用户名和密码)后, 现在您就可以安装和使用桌面应用程序了。 带有图形界面的Linux系统。

将现有的 WSL 安装升级为具有图形用户界面

如果您已经配置了 WSL,但可能还没有 WSLg。要更新它:

  1. 以管理员身份打开 PowerShell。
  2. wsl –更新 更新 WSL 组件,包括图形支持。
  3. 使用以下命令重启子系统 wsl – 关闭 使更改生效。

从那时起,任何兼容 WSL2 的发行版都应该能够使用 WSLg 基础架构启动 GUI 应用程序。

在 WSL2 下 Ubuntu 上常用的 GUI 应用程序示例

假设你使用的是 Ubuntu 系统,APT 软件包管理器可以让你快速安装一系列优秀的图形应用程序。首先,建议你这样做。 更新软件包列表:

在 Ubuntu 终端中:

sudo apt update

此外,以下一些应用程序通常可以通过 WSL2 在 Windows 上很好地运行:

  • GNOME 文本编辑器 (gnome-text-editor):GNOME 环境的默认编辑器。它随附安装。 sudo apt install gnome-text-editor -y并随 gnome文本编辑器例如,您可以打开您的文件 .bashrcgnome-text-editor ~/.bashrc.
  • GIMP一款功能非常全面的开源图像编辑器。安装方法: sudo apt install gimp -y它以……开始 花边如果您想在不离开 Windows 的情况下从 Linux 编辑图像,这是理想之选。
  • Nautilus(GNOME 文件管理器)GNOME 的经典文件管理器,类似于文件资源管理器。它随附安装。 sudo apt install nautilus -y 它以写作开始。 鹦鹉螺.
  • VLC一款跨平台多媒体播放器,几乎可以播放所有格式的文件。安装: sudo apt install vlc -y首先是 VLC.
  • x11-apps一套用于 X11 的小型示例工具(xclock、xcalc、xeyes 等)。它随附安装。 sudo apt install x11-apps -y 执行方法是输入工具名称,例如 时钟 o 计算器.

此外,还可以安装诸如以下浏览器: 适用于 Linux 的 Google Chrome 使用以下命令下载 .deb 软件包 wget的 然后通过 APT 安装,或者甚至 适用于Linux的Microsoft Edge 按照 Edge Insider 页面上的文档进行操作。安装完成后,它们也会出现在 Windows 开始菜单的相应发行版文件夹下(例如,Ubuntu > Google Chrome)。

WSL2 中的文件访问和硬件限制

WSL2 的优势之一是 Linux 和 Windows 文件系统之间的互操作性通过该发行版,您可以访问 C: 盘以及其下的其他分区。 /mnt (例如, /mnt/c),以及来自 Windows文件资源管理器 您可以看到“Linux”部分,其中会显示已安装的发行版及其内容。

创建混合 Windows-Linux 工作流程
相关文章:
如何在现代环境中创建混合 Windows-Linux 工作流程

这大大简化了处理位于 Windows 磁盘上并使用 Linux 工具编辑的项目,反之亦然:您可以保存由 Linux 应用程序生成的文档,并且 无需费力进行复杂的设置,即可在 Windows 系统中直接打开它们。.

然而,还有一些重要的局限性需要考虑: WSL 不提供对直接连接 USB 设备的官方支持。 对于发行版(例如U盘、某些特定外设等),存在兼容性问题。为了缓解这个问题,开源项目USBIPD-WIN尝试将USB设备暴露给WSL,但它并未获得微软的官方支持。

WSL2 与虚拟机、双启动和 Docker 的比较

虽然 WSL2 内部使用了虚拟机,但其实现方式与 VirtualBox 或 VMware 等解决方案不同。您无需创建完整的虚拟机, 分配固定内存、配置虚拟磁盘或启动整个桌面。一切都更加一体化和透明化了。

与完整的虚拟机相比,WSL2 提供以下功能:

  • 资源消耗极低 当您不使用它时(它不会始终保持客户系统及其图形环境运行)。
  • 近乎瞬时的启动和停止 发行版。
  • 直接访问Windows文件系统和 启动交叉命令的可能性.

相反,一个 完整的虚拟机 当你需要的时候,它仍然是最佳选择。 一个完整的 Linux 桌面,具备完整的硬件控制、自定义图形界面、特定驱动程序,或适用于高强度生产环境。WSL2 无意参与该项赛事。

与双启动相比,WSL2 避免了以下情况: 对磁盘进行分区,安装启动管理器,每次想要切换系统时都要重新启动。对于大多数只需要访问 Linux 工具或特定应用程序的用户来说,WSL2 要方便得多。如果您想完全使用 Linux 系统并充分利用其功能而无需任何额外的层,那么双启动仍然是一个不错的选择。

最后,关于 Docker,需要了解的是: Docker 和 WSL2 更多的是互补关系,而不是相互替代。Docker 基于轻量级容器,这些容器封装了特定的服务(例如 Web 服务器或数据库),并且可以轻松隔离和扩展。而 WSL2 则提供了一个完整的 Linux 环境,您可以使用它以非常自然的方式开发、测试和编排这些容器。

将 WSL2 与开发、Docker 和企业环境集成

对于开发人员和 IT 团队而言,WSL2 已成为一项关键工具。 统一 Windows-Linux 工作流程一些典型用途包括:

  • Docker Desktop 与 WSL2 后端:允许以比传统 Hyper-V 更好的性能运行容器,资源使用率更低,对文件系统的访问更流畅。
  • Visual Studio Code 和远程 WSL 扩展它允许你在发行版中打开项目文件夹,但使用的是 Windows 上的 VS Code 界面。编辑器在 Linux 系统内运行扩展服务器,因此 这些工具、代码检查器、调试器和运行时环境与您在原生 Linux 系统上的工作方式相同。.
  • 集成和部署管道您可以设置本地 CI/CD 环境,测试稍后将部署到 Linux 服务器的部署脚本,并以相当高的保真度模拟生产条件,而无需放弃 Windows。
  • 数据科学与人工智能开发在 WSL2 中可以使用一些仅在 Linux 上运行效果最佳或仅适用于 Linux 的框架和库(例如某些版本的 TensorFlow、编排工具等)。 许多情况下都支持 GPU 支持取决于驱动程序和硬件。

在企业环境中,WSL2 通常会伴随以下组件使用: 良好的安全实践、备份和更新策略 为了保持内核和发行版的更新,管理访问权限,避免因软件过时而带来的意外情况。

WSL2 的安全性、性能和最佳实践

尽管 WSL2 运行在轻量级虚拟机中,但它仍然 一个完整的 Linux 环境,拥有自己的软件包、服务和潜在漏洞一些合理的建议包括:

  • 保持 WSL 内核和发行版最新使用 wsl –update 和软件包管理器(apt 等)。
  • 使用 非root用户日常工作就像在普通的 Linux 服务器或桌面电脑上一样。
  • 在 Windows 系统中应用防火墙策略和网络安全解决方案时,请考虑到以下几点: WSL 可以访问网络和文件系统.
  • 管理备份 重要数据的 保存在发行版中,可以通过导出发行版或将文件夹与云服务同步来实现。
  • 必要时进行调整 WSL2 的内存和 CPU 限制 在处理非常大的负载时,防止其消耗主系统的资源。

如果对这方面不予过多关注,WSL2 即使在中端笔记本电脑上也能非常稳定地运行,并提供…… 性能完全满足开发、测试和高级应用的需求。 Linux 工具。

WSL 和 WSL2 中的常见问题及解决方案

大多数 WSL2 安装都能顺利运行,但也存在一些问题。 重复出现的错误和异常行为 因此,控制住它们至关重要:

  • 启用 WSL 时出错这些问题通常是由于 Windows 系统未更新或进程未以管理员权限运行造成的。更新系统并重新执行激活过程(通过 Windows 功能或 PowerShell)通常可以解决问题。
  • 从应用商店安装发行版时出错有时下载文件会损坏或出现网络连接问题。检查网络连接并重新安装通常就能解决问题。
  • 错误代码 0x80070003 或 0x80370102这些通常表明安装位置(WSL 只能在安装 Windows 的驱动器上运行,通常是 C 盘)或系统存在问题。 BIOS/UEFI 中已禁用虚拟化建议确保发行版安装在 C: 盘,并启用处理器虚拟化选项。
  • WslRegisterDistribution 中出现错误 0x8007019e这通常意味着可选的 WSL 组件实际上并未启用。可以通过在“控制面板”>“程序和功能”>“启用或关闭 Windows 功能”中启用“适用于 Linux 的 Windows 子系统”来解决此问题。
  • “WSL 2 需要更新其内核组件”消息这表明 WSL2 使用的 Linux 内核需要更新。可以通过从微软官方链接 (aka.ms/wsl2kernel) 下载内核安装程序,运行安装程序并重启来解决此问题。
  • 消息“未安装发行版”如果您在未至少打开过一次新安装的发行版的情况下尝试使用 WSL,就会出现此问题。只需从“开始”菜单启动发行版并完成初始设置即可。
  • 性能或网络问题他们通常会通过确保使用 WSL2(而不是 WSL1)、硬件满足要求以及与其他虚拟机管理程序或虚拟化工具没有冲突来改进。
  • 启动图形用户界面应用程序时出现问题(屏幕错误)这些问题通常与显卡驱动程序、过时的 WSLg 版本或异常配置有关。检查系统更新并使用 WSLg 诊断指南可以帮助找出问题所在。

在某些情况下,也会出现一些奇怪的行为,例如脚本 WSL 在 Windows 10 中会在启动时自动运行,但在 Windows 11 中则会停止工作。这通常涉及 Windows 管理 WSL 启动方式的更改,解决方案包括检查计划任务、等待用户登录或调整脚本以保持某些进程运行,从而防止 WSL 立即停止。

如果出现 BOOTMGR 丢失错误该怎么办
相关文章:
如何在 Windows 上逐步安装第二个版本的双启动

综上所述,WSL2 显然比以往任何时候都更紧密地连接了 Windows 和 Linux 的世界,让您无需放弃熟悉的 Windows 11 桌面,即可使用简单的控制台命令、运行高级图形应用程序、容器和复杂的流程。如果您想尝试 Linux、开发跨平台软件或利用该生态系统独有的工具,WSL2 已成为最便捷、灵活和安全的方式之一,无需更换操作系统,也无需费力地使用虚拟机或双启动。 分享此指南,以便用户了解如何操作。.