在 Windows 上安装 WSL 完全指南(含离线安装包|直链下载)

发表于 2025年07月09日 12:56编辑于 2026年09月14日 17:55

WSL 安装完全指南:详解 WSL 2 原理与优势,覆盖在线一键安装、离线 MSI 与 .wsl 包安装全流程、常用命令速查及常见报错排错,附官方与高速直链下载。

AI 协同创作:本文由作者与人工智能共同创作,AI 参与了部分实质性内容的生成与完善,并经作者最终审阅修改。

本页目录

一、WSL 是什么

1.1 定义

适用于 Linux 的 Windows 子系统(WSL)是 Windows 的一项功能,让你在 Windows 计算机上运行 Linux 环境 —— 既不用单独开一台虚拟机,也不用折腾双系统。它面向的是需要同时兼顾 Windows 和 Linux 的开发人员,要的就是无缝、高效。

装上 WSL 之后,你可以安装 Ubuntu、OpenSUSE、Kali、Debian、Arch Linux 等 Linux 分发版,直接在 Windows 上使用 Linux 应用程序、实用工具和 Bash 命令行工具,无需任何修改,也不必承担传统虚拟机或双启动带来的开销。

1.2 WSL 能做什么

  • 安装并运行各种 Linux 分发版,例如 Ubuntu、Debian、Kali 等:可以从 Microsoft 应用商店安装并自动接收更新,也可以导入商店里没有的分发版,甚至自己做一份自定义分发版。

  • 把文件存放在独立的 Linux 文件系统中,每个分发版各有一套。

  • 运行 BASH 这类命令行 shell。

  • 运行常见的 BASH 命令行工具,例如 ​grep​、​sed​、​awk,以及其他 ELF-64 二进制文件。

  • 运行 Bash 脚本和 GNU/Linux 命令行应用,包括:

    • 工具:vim、emacs、tmux
    • 语言:NodeJS、JavaScript、Python、Ruby、C/C++、C# & F#、Rust、Go 等
    • 服务:SSHD、MySQL、Apache、lighttpd、MongoDB、PostgreSQL
  • 用分发版自带的包管理器安装其他软件。

  • 在类 Unix 的命令行 shell 里调用 Windows 应用程序。

  • 在 Windows 上调用 GNU/Linux 应用程序。

  • 运行 GNU/Linux 图形应用,它们会直接融入 Windows 桌面。

  • 调用 GPU 加速跑在 Linux 上的机器学习任务。

1.3 开源资源

二、WSL 2 升级了什么

安装 Linux 分发版时,默认用的就是 WSL 2。WSL 2 借助虚拟化技术,在一个轻型实用工具虚拟机(VM)里运行 Linux 内核,各个 Linux 分发版则以独立容器的形式跑在这个托管 VM 内部。

2.1 架构变化

传统虚拟机的体验往往不尽如人意:启动慢、环境隔离、吃资源,还得花时间维护。WSL 2 没有这些问题。

WSL 2 保留了 WSL 1 的全部优点 —— Windows 与 Linux 无缝集成、启动快、占用资源少,而且不需要配置或管理 VM。虽然 WSL 2 确实用到了 VM,但它完全在后台运行,用起来的感觉和 WSL 1 没什么两样。

通过 WSL 2 运行的各个分发版会共享同一套网络命名空间、设备树(​/dev/pts​ 除外)、CPU/内核/内存/交换和 ​/init​ 二进制文件,但各自拥有独立的 PID 命名空间、装载命名空间、用户命名空间、Cgroup 命名空间和 ​init 进程。

2.2 完整 Linux 内核

WSL 2 的 Linux 内核由 Microsoft 基于 https://kernel.org 上的最新稳定分支构建,并针对 WSL 2 做了专门优化 —— 重点就在体积和性能上,为的是在 Windows 上带来更好的 Linux 体验。内核更新由 Windows 更新负责推送,安全补丁和内核改进会自动送达,不需要你自己维护。

WSL 2 的 Linux 内核同样开源:https://github.com/microsoft/WSL2-Linux-Kernel

2.3 提高了文件 IO 性能

WSL 2 处理文件密集型操作(例如 ​git clone​、​npm install​、​apt update​、​apt upgrade 等)明显更快。

具体能快多少,取决于跑的是什么应用、以及它访问文件系统的方式。WSL 2 最初的版本在解压 tarball 时比 WSL 1 最快可达 20 倍;用 ​git clone​、​npm install​ 和 ​cmake 处理各类项目时,提速约 2-5 倍。

2.4 完整的系统调用兼容性

Linux 二进制程序靠系统调用来完成访问文件、申请内存、创建进程等操作。WSL 1 用的是 WSL 团队自己写的转换层,而 WSL 2 内置了真正的 Linux 内核,系统调用完全兼容。带来的好处是:

  • 一大批此前跑不了的应用现在能在 WSL 里运行,比如 Docker。
  • Linux 内核一有更新就能立刻用上,不用等 WSL 团队去实现、再去适配。

2.5 功能对比表

功能 / 特点WSL 1WSL 2
Windows 与 Linux 之间的集成
快速启动时间
与传统虚拟机相比,资源占用很小
使用 VMware 和 VirtualBox 的当前版本运行
托管 VM
完整 Linux 内核
完整的系统调用兼容性
跨 OS 文件系统的性能
systemd 支持
IPv6 支持

如上表所示,WSL 2 架构在多数方面都优于 WSL 1,唯一的短板是跨操作系统访问文件的性能。这一点也好解决:把项目文件和使用它们的工具放在同一个操作系统上就行。

WSL 2 需要 Windows 11,或 Windows 10 版本 1903、内部版本 18362 及以上。查看版本按 Windows 徽标键 + R,输入 ​winver 后回车。低于 14393 的版本则完全不支持 WSL。

注意:WSL 2 可以和 VMware 15.5.5 及以上版本共存;VirtualBox 6 及以上虽然宣称支持 WSL,但实际仍有明显问题,官方并不支持。

三、WSL 的在线安装

3.1 先决条件

要使用下面的命令,系统必须是 Windows 10 版本 2004(内部版本 19041)或更高版本,或者 Windows 11。版本更老的机器,请参考「手动安装页」。

3.2 一条命令完成安装

现在只需要一条命令,就能装好运行 WSL 所需的全部组件。右键点击 PowerShell,选择「以管理员身份运行」,输入 ​wsl --install,装完重启计算机即可:

wsl --install

这条命令会启用 WSL 所需的全部功能,并装上 Ubuntu 这个 Linux 分发版。

第一次启动新装好的分发版时会弹出控制台窗口,需要等一会儿让文件解压缩并写入本机。之后再启动就快了,基本不到一秒。

注意
只有在完全没装过 WSL 的机器上,这条命令才会走安装流程。如果运行 ​wsl --install​ 后只是弹出 WSL 帮助文本,可以先运行 ​wsl --list --online​ 看看有哪些分发版可用,再用 ​wsl --install -d <DistroName>​ 安装。如果安装进度卡在 0.0%,先运行 ​wsl --install --web-download -d <DistroName> 把分发版下载下来,然后再执行安装。

3.3 更改安装的默认 Linux 分发版

默认装的是 Ubuntu。想换一个,加 ​-d 参数就行:

# 安装指定的分发版
wsl.exe --install -d [Distro]

# 查看可从在线商店获取的分发版列表
wsl.exe --list --online

把 ​[Distro] 换成你想装的分发版名称。

如果想装的分发版不在可安装列表里,可以用 TAR 文件「导入任意 Linux 分发版」;某些情况下也可以用 ​.appx​ 文件安装。你还可以「构建自己的自定义 Linux 分发版」给 WSL 用。

3.4 设置 Linux 用户信息

装好 WSL 之后,还要为新装的分发版创建用户账户和密码。详见「设置 WSL 开发环境的最佳实践」。

3.5 检查正在运行的 WSL 版本

# 列出已安装的分发版及其 WSL 版本
wsl.exe --list --verbose

# 为以后新建的分发版设置默认 WSL 版本(设为 WSL 2)
wsl.exe --set-default-version 2

# 设置 wsl 命令默认使用哪个分发版
wsl.exe --set-default <Distro>

# 临时运行某个分发版,不改变默认设置
wsl.exe --distribution <DistroName>

例如,在 PowerShell 里输入 ​wsl -s Debian​,就把默认分发版设成了 Debian。此后在 PowerShell 中运行 ​wsl npm init​,就相当于在 Debian 里执行 ​npm init

3.6 运行多个 Linux 分发版的方法

WSL 想装多少个分发版都行。装好之后,有下面几种启动方式:

  • Windows 终端(推荐) 。Windows 终端可以同时开任意多个命令行,用标签页或分屏并排显示,在多个 Linux 分发版与 PowerShell、命令提示符、Azure CLI 等其他命令行之间快速切换。配色方案、字体样式、字号、背景图片和快捷键都能自定义。
  • 开始菜单。打开开始菜单,直接输入分发版名称(比如「Ubuntu」)并回车,就会在一个独立的控制台窗口里启动它。
  • 在 PowerShell 里直接输入分发版名称,例如 ​ubuntu
  • 在 PowerShell 里输入wsl.exe,在当前命令行中打开默认分发版。
  • 在 PowerShell 里输入wsl [command] ​,直接调用默认分发版执行命令,不用先进去。比如 ​wsl -l -v​ 列出已装的分发版,​wsl pwd​ 查看当前目录在 WSL 中的挂载位置。一个有意思的对比:在 PowerShell 里执行 ​Get-Date​ 拿到的是 Windows 的日期,而 ​wsl date 拿到的是 Linux 的。

用哪种取决于你当时在干什么。如果在 PowerShell 里进了 WSL 命令行想退出来,输入 ​exit 即可。

四、WSL 基本命令参考

下面按 PowerShell / Windows 命令提示符的格式列出 WSL 常用命令。如果要在 Bash 或分发版的命令行里执行这些命令,需要把 ​wsl​ 写成 ​wsl.exe​。完整列表请运行 ​wsl --help

4.1 命令速查表

命令说明
wsl --install安装 WSL,同时装上默认的 Ubuntu 分发版
wsl --install <Distribution Name>安装指定的 Linux 分发版
wsl --list --online​(​wsl -l -o列出可从在线商店获取的分发版
wsl --list --verbose​(​wsl -l -v列出已装分发版、运行状态与 WSL 版本
wsl --set-default-version <Version>设置以后新建分发版的默认 WSL 版本
wsl --set-default <Distribution Name>设置默认 Linux 分发版
wsl ~在用户主目录中启动 WSL
wsl --distribution <Distro> --user <User>以指定用户运行指定分发版
wsl --update将 WSL 更新到最新版本
wsl --status查看 WSL 配置的概况
wsl --version查看 WSL 及各组件的版本信息
wsl --help查看可用选项和命令列表
wsl --user <Username>以指定用户身份运行
<Distro> config --default-user <Username>更改分发版登录时使用的默认用户
wsl --shutdown立即终止所有运行中的分发版和 WSL 2 虚拟机
wsl --terminate <Distro>终止指定的分发版
wsl --unregister <Distro>注销并卸载分发版(数据将永久丢失

4.2 安装相关的选项

wsl --install 的常用选项:

  • --distribution​:指定要安装的 Linux 分发版。有哪些可选,运行 ​wsl --list --online 就能查到。
  • --no-launch:只安装,装完不自动启动。
  • --web-download:从网络源安装,不走 Microsoft Store。
  • --location:指定分发版装到哪个文件夹。

机器上还没装 WSL 时可用的选项:

  • --inbox:用 Windows 自带组件安装 WSL,而不是从 Microsoft 应用商店安装。(此后 WSL 更新随 Windows 更新推送,而不是由商店随时推送。)
  • --no-distribution:只装 WSL,不装任何分发版。

注意
在 Windows 10 或更早版本上,可能需要在 ​--install​ 里显式加上 ​-d​ 指定分发版:​wsl --install -d <distribution name>

五、WSL 的离线安装

本节面向这几类情况:访问不了 Microsoft 应用商店、处在内网环境、或者wsl --install一直卡在 0.0% 。全部材料都可以提前下载到 U 盘或内网文件服务器上分发。

5.1 官方给出的脱机安装步骤

Microsoft 官方文档「脱机安装」给出的步骤如下:

  1. GitHub 发布页下载并安装最新的 WSL MSI 包
  2. 以管理员身份打开 PowerShell,运行
    dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
    启用「虚拟机平台」可选组件,可能需要重启计算机才会生效;
  3. 通过 ​ .wsl文件安装分发版。​.wsl​ 文件的下载地址可以在 DistributionInfo.json 里找到。

5.2 离线安装前的准备

序号材料说明
1WSL MSI 离线安装包(​wsl.2.7.14.0.x64.msiWSL 本体,用来替代 Microsoft 应用商店版本。下载地址见第六节
2Ubuntu 26.04 Ubuntu 24.04.4 的 ​.wsl 离线安装文件(二选一)分发版镜像(WSL 2 格式分发包),两个版本挑一个就行
3管理员权限的 PowerShell / 终端以下命令都需要管理员权限
4BIOS/UEFI 中已开启硬件虚拟化任务管理器 → 性能 → CPU →「虚拟化」应显示为「已启用」

建议把这些文件放在一个短路径目录里(例如 ​C:\wsl-offline\​ 或 ​D:\wsl-offline\),避免路径中的空格和中文引起命令解析问题。

5.3 步骤一:启用「虚拟机平台」可选组件

管理员身份打开 PowerShell,执行:

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

等价的 PowerShell 写法:

Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform -NoRestart

也可以走图形界面:控制面板 → 程序 → 程序和功能 → 启用或关闭 Windows 功能,勾选「虚拟机平台」,确定后重启。

注意
这一步做完必须重启计算机才会生效。没重启就装分发版,很可能报 ​0x80370102 之类的错。

5.4 步骤二:安装 WSL MSI 离线包

双击 ​wsl.2.7.14.0.x64.msi 跟着向导走就行;也可以在管理员 PowerShell 里静默安装:

msiexec /i "C:\wsl-offline\wsl.2.7.14.0.x64.msi" /quiet /norestart

装完之后重启(如果上一步还没重启过),然后验证:

wsl --version
wsl --status

wsl --version​ 会输出 WSL 版本、内核版本、WSLg 版本等信息(WSL 版本应为 2.7.14.0);​wsl --status 则显示默认分发类型、默认分发版和内核版本等概况。

注意
离线环境下不要用 ​wsl --update​ 或 ​wsl --update --web-download​,这两个都要联网(前者走 Microsoft 应用商店,后者走 GitHub)。以后要升级,重新下载新版 MSI 包覆盖安装即可。

.wsl

5.5 步骤三:使用 ​ 文件离线安装分发版

最省事的做法是直接双击那个 ​.wsl​ 文件 —— Windows 已经把这种格式和 WSL 关联好了,会自动调用 WSL 完成安装,全程不联网。两个 Ubuntu 版本二选一,装一个就够;装出来的分发版名称由文件本身决定。

如果想自己指定分发版名称或安装位置,再改用命令行:在管理员 PowerShell 里用 ​--from-file​ 指向本地的 ​.wsl 分发包(路径按实际存放位置改)。

# 安装 Ubuntu 26.04
wsl --install --from-file "C:\wsl-offline\Ubuntu-26.04.wsl"

# 或者装 Ubuntu 24.04.4
wsl --install --from-file "C:\wsl-offline\Ubuntu-24.04.4.wsl"

可用的选项以 ​wsl --install --help 的输出为准。

5.6 步骤四:初始化用户并验证

第一次启动新装的分发版时会弹出控制台窗口,需要等文件解压缩并写入磁盘;随后会要求创建用户账户和密码。之后每次启动就基本是秒开了。

# 查看已装的分发版、运行状态与 WSL 版本
wsl --list --verbose

# 启动默认分发版
wsl

进到分发版里,可以再确认一下系统版本:

cat /etc/os-release
uname -a

六、离线安装包下载指南

为了给您提供最便捷的体验,我们将所有可用下载方式汇集于同一页面。访问下方链接后,您可根据个人网络环境与偏好,自由选择最合适的下载渠道。

七、常见问题与排错

现象可能原因处理建议
运行 ​wsl --install 只弹出帮助文本这台机器上已经装过 WSL用 ​wsl --list --online​ 查可用分发版,再用 ​wsl --install -d <DistroName> 安装
安装进度卡在 0.0%商店或网络下载受阻先试 ​wsl --install --web-download -d <DistroName>;不行就走第五节的离线方案
报错 ​0x80370102「虚拟机平台」没启用,或 BIOS 里的硬件虚拟化没打开执行上面的 dism 命令启用虚拟机平台并重启;进 BIOS/UEFI 打开虚拟化
报错 ​0x8007019eWSL 平台组件没启用,或没用管理员权限安装以管理员身份重新执行 ​wsl --install;离线环境则改用第五节的 MSI 方案
报错 ​0x800701bcWSL 2 内核包没装(多见于旧版手动安装的机器)安装「Linux 内核更新包」,或直接装 WSL 2.7.14 的 MSI 包
wsl --update 一直没反应离线,或商店不可达从 GitHub 发布页下载新版 MSI 包覆盖安装
跨系统读写文件很慢WSL 2 跨 OS 文件性能偏弱把项目文件放进 Linux 文件系统,配合 VS Code 远程 WSL 扩展使用
想卸载wsl --unregister <DistroName>​ 注销分发版(数据将永久丢失);卸载 WSL 参见「卸载旧版 WSL

八、参考资料

发表评论

理性发言,友善交流,评论将在审核通过后展示。

0
邮箱仅用于回复通知,不会公开显示。

全部评论(共 1 条)

  • 天天5天前
    不错,感谢分享