50% off 所有套餐限时优惠,起价 $2.48/mo
9 min left
开发者工具与DevOps

Windows 子系统现已支持 Linux!+ 了解如何修复 WSL 错误👨‍🔧

Alex Robbins By Alex Robbins 9 min read Updated May 30, 2023
wsl on windows 10

有时候,Windows 就不够用了。其实很多时候都是这样,特别是对开发者来说。但给电脑装双系统或者用虚拟机既麻烦又头疼,在老旧电脑上更是噩梦。那么次优方案是什么呢?不是 WSL,虽然你可能会这么想。文章最后我会揭晓更好的解决方案,所以一定要读完。次次优方案呢?Windows Subsystem for Linux。无论你是需要用 WSL 来修复 WSL 报错,还是…Windows Linux 子系统的可选组件未启用或者出于其他原因,你需要先启用它。

What is WSL?

 

WSL 是一种混合方式,在 PowerShell 中运行某些 Linux 命令和应用程序到 Windows 内,但功能不完整。当然,整个 Windows vs Linux 对比 WSL 不是完整的解决方案,但至少是一个临时方案。它比完整虚拟机(VM)更快,系统开销也更小。不过,WSL 既不能保证所有功能都正常工作,也不支持所有命令和应用程序。总的来说,这是一个折中方案。如果你计划进行跨平台代码编写和编译,我才建议使用它。

 

What is WSL2?

 

新版 Windows 子系统(代号 WSL2)现已默认安装。按照我上面的步骤操作即可激活。WSL2 带来了重大改进,包括对 Docker 和 Kubernetes 容器的完整支持,以及它们的部署能力。Microsoft 终于采取行动让容器更容易上手了。不过,在容器化和代码部署方面,WSL2 还远非完美。 

暂时来说,你需要安装 WSL。这就是本指南的用处。我已经列出了启用 WSL 的全部步骤,即使你用的是较早的 Windows 10 Build 也没问题。按照说明操作,你会找到我承诺的那个更好的解决方案。 

Also Read: 如何在 VPS 上安装 Docker(分步指南)

排查错误:Windows 子系统的 Linux 可选组件未启用

用户通常发现 WSL 并尝试安装的主要原因之一是在 Windows 中遇到某个特定错误。当然,在 Windows 中看到错误提示并不新鲜,但这个错误比其他的要少见一些。错误信息通常类似于"Linux 的 Windows 子系统可选组件未启用"。 

要解决这个错误,你需要为 Linux 启用 Windows 子系统。本文的步骤会指导你完成这个过程。我们开始吧。

如何为 Linux 启用 Windows 子系统?

To enhance your Windows with some Linux functionality, you need to enable the Windows Subsystem for Linux. You may also need to do it to get rid of the annoying “the windows subsystem for Linux optional component is not enabled” error) Despite the name sounding so technical, installing it is very simple. 

启用 WSL 的方式主要有两种:通过控制面板或 PowerShell。控制面板的方式更直接、更友好。但有时它会失效(出于某些不为人知的原因,咳咳微软)。PowerShell 的方式需要在命令行界面中输入一些命令,对大多数普通用户来说可能有些吓人。不过别担心,我们已经为你准备好了所有需要的命令,你可以直接复制粘贴到 PowerShell 中。

不过,在选择任何方法之前,你需要先确认你的 Windows 版本和内部版本号。Windows Subsystem for Linux 只支持 Windows 10 2004 版本及更新版本。另外,如果你的 Windows 10 内部版本号低于 16215,需要先启用开发者模式才能启用 WSL。

如何查看你的 Windows 版本?

我们已经另外投入了 如何查看各类操作系统的版本号,所以我长话短说。要查找你的 Windows 10 版本和内部版本号,按照以下三个步骤操作:

第一步:按下 Windows 键 + R 启动应用程序启动器

[Application Launcher]
[Application Launcher]
第 2 步:在运行框中输入 <winver>

在启动框中输入 "winver"
[Enter “winver” into the launcher box]
第 3 步:从关于 Windows 屏幕中找到你的 Windows 版本和内部版本号。

从弹出窗口中找到 Windows 版本
[从弹窗屏幕中查找 Windows 版本]

如上面的截图所示,我的 Windows 10 满足两个条件(版本 2004,版本号 > 16215)。如果你的版本号低于 16215,你需要 启用开发者模式 first.

 

如何启用开发者模式(Windows 10 版本 16215 之前的构建版)

开发者模式是 Windows 的一项功能,允许你安装未经 Microsoft 批准或仍在测试阶段的应用。启用开发者模式在其他场景也很有用,比如安装一些未经 Microsoft 官方认可的第三方应用时。要启用开发者模式,按照以下步骤操作即可:

Step 1: Open Settings

Step 2: Click on 更新与安全

设置中的更新和安全面板
[设置中的更新和安全面板]

Step 3: 从左侧菜单中选择 For Developers

开发者设置面板
[开发者设置面板]

Step 4: 点击开/关切换按钮以启用开发者模式。

开发者模式已启用
[开发者模式已启用]

Step 5: On the “使用开发者功能 对话框,点击 Yes

确认开发者模式
[确认开发者模式]
你现在处于开发者模式。这意味着你将获得安装非标准软件的权限,包括 WSL(在 Build 16215 之前以测试版形式提供)。现在所有条件都已就位,是时候为 Linux 启用 Windows 子系统了。

如何通过控制面板启用 WSL

在 Windows 10 上运行任何 Linux 发行版之前,你需要先为 Linux 启用 Windows 子系统(WSL)。按以下步骤操作:

Step 1: Open 控制面板

Step 2: Click on Programs

[Windows 10 控制面板屏幕]
[Windows 10 控制面板屏幕]

Step 3: Click on 打开或关闭 Windows 功能

控制面板 Windows 功能
[控制面板 Windows 功能]

Step 4: 找到并选择 Windows Subsystem for Linux box.

[Windows 功能列表,可打开或关闭]
[Windows 功能列表,可打开或关闭]

Step 5: 勾选确定按钮 

 

Step 6: 等待安装向导完成 Windows 的配置。

Windows 功能安装向导
[Windows 功能安装向导]

Step 7: Next, click on Restart now 在下一个屏幕中

重启你的 Windows
[重启你的 Windows]

Windows 重启完成后,WSL 即可启用并使用。默认情况下,Windows Subsystem for Linux 运行 Ubuntu 终端。如需其他发行版,可从 Microsoft Store 下载并按以下步骤安装(或使用 PowerShell 方法):

  1. Open Microsoft Store
  2. 搜索 Linux 发行版(Ubuntu、Debian、Kali Linux 等)
  3. 选择您需要的发行版
  4. Click on the Get or Install button
  5. Click on the Launch button
  6. 为你的发行版创建用户名,然后按 Enter
  7. 为你的系统创建密码,然后按 Enter
  8. 重新输入密码,然后按 Enter to confirm

现在,你最喜欢的 Linux 发行版可以在 WSL 上快速就绪。

如何通过 PowerShell 安装 WSL?

 

如果您习惯使用命令行,也可以用 PowerShell 为 Linux 启用 Windows 子系统。 

使用 PowerShell 安装 WSL,请按照以下步骤操作: 

  1. Open Start 并搜索 PowerShell
  2. 右键点击结果,然后选择 Run as administrator
  3. 输入以下命令以启用 Linux 子系统,然后按 Enter
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
  1. Open Start 和搜索 PowerShell
  2. Type Y and press Enter 以确认并重启您的计算机。

您的 Windows 10 已准备好供您下载。按照以下步骤安装发行版:

  1. Open Start 和搜索 PowerShell
  2. 右键点击结果,然后选择 Run as administrator 
  3. 输入以下命令,然后按 Enter; 此命令将选择并下载文件夹
cd c:\PATH\TO\DESTINATION-FOLDER

注意:输入路径作为下载文件的保存位置,例如 c:\data

  1. 输入以下命令下载 Ubuntu 然后按 Enter
Invoke-WebRequest -Uri https://wsldownload.azureedge.net/Ubuntu_1604.2019.523.0_x64.appx -OutFile Ubuntu.appx -UseBasicParsing

注意:此命令将下载 Ubuntu 16.04。要下载你需要的发行版,直接输入版本名称即可。

  1. Type dir and press Enter 查看安装程序的实际名称
  2.  输入以下命令并按 Enter 安装发行版。在 APP-NAME 部分输入发行版的名称
Add-AppxPackage .\APP-NAME.appx
  1. Open Start
  2. 搜索发行版,点击顶部结果即可启动
  3. 为你的发行版创建用户名,然后按 Enter
  4. 为你的系统创建密码,然后按 Enter
  5. 重新输入密码,然后按 Enter to confirm

 

A Better Solution?

If you’re installing WSL not because you’re getting the error (“the windows subsystem for Linux optional component is not enabled”) but because you want to use Linux, then I think I can show you a better solution.

如我在本文开头所说,对大多数用户来说,从 Windows 迁移到 Linux 并不简单。放弃熟悉的操作系统,进入 Linux 的陌生领域,这前景并不令人期待。因此,大多数初级开发者或网站管理员倾向于选择双系统启动,这会给硬件带来巨大压力且有破坏整个系统的风险,或者使用虚拟机。 虚拟机的开销非常大,但同时运行两个完整的操作系统(这就是虚拟机所做的)会导致两者性能大幅下降。所以,除非你在家里有台超高配的游戏电脑,否则你需要找一个更好的方案。

这时用户通常会转向用于 Linux 的 Windows 子系统,但如我之前解释的,这只是一个折中方案,让你只能使用部分命令和应用。如果你不想迁移、双启动或使用虚拟机,这真的是最好的选择吗?不是。

linux-vps Linux 主机服务简化版

想要更好的方式来托管网站和网络应用?正在开发新项目?或者只是不喜欢 Windows?这就是我们提供 Linux VPS 的原因。

获取你的 Linux VPS

我建议你选择 Linux VPS 方案,把它当作远程计算机使用。我们的 Linux VPS 产品是针对发行版优化的托管方案,采用顶级硬件,所以你完全不用担心开销问题。我们还在全球 14 多个地点提供 VPS 方案,无论你身在何处都能建立低延迟的服务器连接。

Share

博客更新

Keep reading.

一个金属容器,由发光的霓虹青色线框圆顶保护,容器上显示文章标题和 Cloudzy 徽标,背景为深蓝色。
开发者工具与DevOps

2026 年需要避免的 Docker 安全错误

Docker 可以在生产环境中运行数月,没有任何明显问题。容器启动,应用响应,一切正常。然后一个暴露的端口或一个配置错误的权限就会造成

Rexa CyrusRexa Cyrus 15 min read
一个蓝色发光的3D立方体结构,代表Docker容器,旁边是文本'Portainer vs Yacht: 你应该选择哪个Docker UI',以及Cloudzy标志。
开发者工具与DevOps

Portainer vs Yacht:2026 年应该选择哪款 Docker UI?

通过 CLI 管理 Docker 容器对简单的设置很有效,但扩展性很差。随着容器数量增加,手动追踪状态、日志和更新很容易出错

Rexa CyrusRexa Cyrus 13 min read
持续集成工具
开发者工具与DevOps

2026年优化DevOps工作流的最佳CI/CD工具

软件开发的格局瞬息万变。如果你不想被快速发展的行业甩在后面,应该采用DevOps方法论和敏捷开发实践

Ada LovegoodAda Lovegood 11 min read

Ready to deploy? From $2.48/mo.

独立云服务,始于2008年。AMD EPYC、NVMe,40 Gbps。14天退款保障。