WSL2 教程:Windows 10 和 11 完整指南
关键要点
- WSL2 允许在 Windows 10 和 11 上无缝集成 Linux 环境,使您能够同时使用 Linux 应用程序和文件以及 Windows 资源。
- 与 Windows 10 相比,Windows 11 上的 WSL2 安装和设置更加简化,Windows 10 需要手动启用虚拟机功能。
- 使用 WSL2 可以直接在 Windows 中运行 Linux GUI 应用程序,无需额外的 X 服务器软件即可增强可用性。
- Docker 可以在 WSL2 内高效使用,受益于更快的启动时间和更好的性能,无需专用的 Hyper-V。
- 通过挂载和符号链接,可以轻松地从 Linux 访问 Windows 文件,反之亦然,实现跨系统的文件共享和管理。
- VS Code 与 WSL2 的集成提供了强大的开发环境,可以直接从编辑器内访问 Linux 文件和终端。
为什么使用 Linux?
您的网络主机几乎肯定使用 Linux。它快速、开源,并且运行大多数网络软件,包括:
- 服务器(Apache、NGINX、LiteSpeed 等)
- 语言运行时(PHP、Python、Node.js、Ruby 等)
- 实用程序库(图像处理、ZIP 创建、电子邮件发送器等)
- 数据库(MySQL、MongoDB、Redis 等)
- 其他依赖项(Elasticsearch、RabbitMQ、代理等)
其中一些依赖项可能在 Windows 和 macOS 上可用,但安装和维护相同版本很困难。它们通常较慢,并且您可能会遇到细微的差异,这些差异直到部署时才会变得明显。
然而,我们不能总是在笔记本电脑上使用 Linux 作为主要操作系统。例如,如果您使用非 Linux 软件,如 Microsoft 或 Adobe 产品,则必须使用 Windows 或 macOS。但我们可以使用一些替代方案:
- 使用两台 PC 或在单台设备上双启动。在系统之间切换可能很麻烦。
- 使用 Hyper-V、VirtualBox、Parallels、WMware 或 Vagrant 运行 Linux 虚拟机(VM)。这需要相当大的操作系统资源和合理的 IT 知识。在系统之间共享文件可能很麻烦。
- 在 Docker 容器中运行 Web 应用程序。这是另一个需要学习的主题,而 Docker 本身在 Linux 上原生运行。Windows 和 macOS 版本都在底层使用 Linux,而 Windows 版的 Docker Desktop 需要 WSL2。
什么是 Windows Subsystem for Linux?
Windows WSL2 允许开发人员直接在 Windows 上运行 Linux 环境。这是一个在 Windows 内部运行的全功能 Linux 操作系统,因此您可以无缝使用相同的应用程序和文件。
WSL1 是开创性的,它将 Linux 系统调用转换为 Windows 等效调用。但它速度慢,并且某些功能不可用。WSL2 使用 Hyper-V 虚拟机技术,因此 Linux 兼容性极佳,文件访问速度比以前快 20 倍。
Windows 10 和 Windows 11 的差异
Microsoft 在 2020 年推出了 WSL 2,因此它在 2021 年 10 月完全集成到 Windows 11 版本中。
Windows 10 需要更多的配置工作。如果您考虑升级到 Windows 11,请在安装 WSL 2 之前进行升级。Windows 11 在某些方面并非改进(我仍然怀念任务栏图标取消分组和拖放文件!),但 WSL 2 似乎更稳定,我很少遇到问题。
PC 要求
WSL 2 使用 Hyper-V。这需要硬件虚拟化支持,您必须在 BIOS 中启用它。
警告:修改 BIOS 设置可能会损坏您的 PC!进行更改时要小心。请查阅主板制造商的帮助页面或搜索有关您特定品牌和型号的在线建议。
大多数现代设备都支持硬件虚拟化,但您可以通过重新启动并打开 BIOS 面板来检查——通常在系统启动时按 DEL、F2 或 F10 键。查找 Virtualization Technology、VTx、Secure Virtual Machine (SVM) 或类似选项。确保它们已启用,然后保存并重新启动计算机。
最后,确保您的 C: 驱动器有 1GB 的可用磁盘空间——理想情况下更多。您可以在设置、系统、存储中或使用 Windows 管理工具中的磁盘清理工具来释放一些空间。
WSL 2 默认会在您的 C: 驱动器上的隐藏文件夹中安装您的 Linux 发行版。安装后可以将其移动到其他地方。
Windows 要求
WSL2 可用于 Windows 的家庭版、专业版或服务器版,但不适用于 Windows 10/11 S。S 模式仅允许来自 Microsoft Store 的应用程序以“提高”安全性。您可以使用设置 > 更新和安全 > 激活中的“切换到 Windows 家庭版”选项从 S 模式切换到 Windows 家庭版/专业版。
Windows 10 需要 2020 年 5 月更新——版本 2004 或更高版本。要更新,请从“开始”菜单中选择“设置”,然后选择“系统”,接着选择“关于”。Windows 规格显示在面板底部。
如果未安装,请使用“设置”中的“检查更新”按钮,然后选择“更新和安全”。但是,一些较旧的 Windows 机器可能永远不兼容,并且 Microsoft 不太可能提供补丁。
禁用快速启动(可选)
快速启动将 Windows 会话和设备驱动程序保存到文件中,以便下次启动更快。这可能会导致 Linux 内核出现问题,该内核在下次启动时变得无响应。如果您遇到问题,请从经典控制面板 > 电源选项 > 选择电源按钮的功能中禁用快速启动:
或者,在您的启动文件夹(C:\Users<user-name>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup)中创建一个 wsl.bat 文件,内容如下:
|
|
这将在 Windows 启动后关闭 WSL,但一旦您访问 Linux 发行版,它将重新启动。
安装 Windows Terminal(可选但推荐)
Windows Terminal 是一个很棒的终端应用程序,可从 Microsoft Store 或其存储库 github.com/microsoft/terminal/ 获取。
Windows Terminal 在安装 WSL2 Linux 发行版时自动添加它们,并提供可配置的选项,包括选项卡、拆分视图、主题、透明度和键绑定。
配置可通过“设置”菜单项(Ctrl + ,)、命令面板(Ctrl + Shift + P)或在设置面板底部访问的 settings.json 进行。
启用 WSL2(Windows 10)
本 WSL2 教程中的步骤适用于 WSL2 Windows 10。但是,它们也应该在 Windows 11 中正常工作,尽管如果您执行了 Windows 10 到 11 的升级,应再次检查。
必须在“打开或关闭 Windows 功能”选项中启用“虚拟机平台”和“Windows Subsystem for Linux”功能。通过按“开始”并键入“features”或从经典控制面板中的“程序和功能”图标访问该面板。
或者,您可以在以管理员身份运行的 Windows Powershell 终端中执行以下命令:
|
|
重新启动 Windows,然后通过