WSL2 安装详细过程与问题解决方案记录
系统环境
- Windows 10 企业版 LTSC 21H2
- OS 内部版本 19044.6456
- 目标:在不开启 Hyper-V 功能的情况下安装 Docker(使用 WSL2 后端)
完整安装流程
1. 前置条件检查
首先确认 BIOS 中已启用虚拟化:
# 检查任务管理器 → 性能 → CPU → 虚拟化是否已启用
✅ 确认:任务管理器显示"虚拟化:已启用"
2. 启用必要 Windows 功能
以管理员身份运行 PowerShell:
# 启用Windows子系统Linux
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
# 启用虚拟机平台
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
✅ 两个功能均成功启用
3. 关键步骤:修复 Hypervisor 启动配置
这是 LTSC 版本上最常见的问题根源:
# 以管理员身份运行(使用Windows PowerShell,不是PowerShell 7)
bcdedit /set hypervisorlaunchtype Auto
✅ 返回:“The operation completed successfully.”
4. 重启系统
# 必须重启才能使上述配置生效
shutdown /r /t 0
5. 验证 Hypervisor 配置
重启后,检查配置是否生效:
bcdedit /enum | findstr -i hypervisorlaunchtype
✅ 期望输出:hypervisorlaunchtype Auto
6. 安装 Ubuntu
- 从 Microsoft Store 安装"Ubuntu 22.04 LTS"
- 首次启动,按照提示创建用户名和密码
7. 验证 WSL 版本与升级
安装后检查当前版本:
wsl -l -v
输出示例:
NAME STATE VERSION
* Ubuntu-22.04 Running 1
升级到 WSL2:
wsl --set-version Ubuntu-22.04 2
✅ 升级成功后,验证:
wsl -l -v
✅ 期望输出:
NAME STATE VERSION
* Ubuntu-22.04 Running 2
8. 设置 WSL2 为默认版本(推荐)
wsl --set-default-version 2
9. WSL 内核更新(可选但推荐)
# 检查当前WSL版本
wsl --version
# 更新到最新内核
wsl --update
10. 验证最终状态
wsl --status
wsl -l -v
遇到的问题及详细解决方案
问题 1:WSL 命令显示帮助而非发行版列表
- 现象:运行
wsl -l -v显示用法信息而非发行版 - 原因:WSL 功能已启用,但未安装任何 Linux 发行版
- 解决方案:
- 从 Microsoft Store 安装 Ubuntu 22.04 LTS
- 首次启动并完成用户设置
- 再次运行
wsl -l -v应显示已安装的发行版
问题 2:安装 Ubuntu 时错误 0x80370102
- 现象:安装失败,提示"Please enable the Virtual Machine Platform Windows feature and ensure virtualization is enabled in the BIOS"
- 原因分析:
- 虚拟化已在 BIOS 启用
- VirtualMachinePlatform 功能已启用
- LTSC 版本缺少 Hypervisor Platform 组件支持
- Hypervisor 启动类型未正确设置
- 解决方案:
- 确认 Hypervisor 启动类型:若不是"Auto",则修复它
bcdedit /enum | findstr -i hypervisorlaunchtype - 关键命令:
bcdedit /set hypervisorlaunchtype Auto - 重启电脑
- 重试安装 Ubuntu
- 确认 Hypervisor 启动类型:
问题 3:无法升级到 WSL2(VERSION 保持为 1)
- 现象:执行
wsl --set-version Ubuntu-22.04 2后仍显示 VERSION 1 - 原因:Hypervisor 配置不正确,WSL2 无法启动虚拟化环境
- 解决方案:
- 再次确认:
bcdedit /set hypervisorlaunchtype Auto - 重启电脑
- 重新尝试升级:
wsl --set-version Ubuntu-22.04 2 - 若仍失败,更新 WSL 内核:
wsl --update
- 再次确认:
问题 4:检测是否需要更新 WSL 内核
- 判断方法:
wsl --version - 解释:如果版本较旧(如低于 5.10.x),建议更新
- 更新命令:
wsl --update - 验证:更新后再次运行
wsl --version确认
问题 5:root 用户认证失败
- 现象:运行
su提示"Authentication failure" - 原因:WSL 中 root 用户默认没有设置密码
- 解决方案:
- 使用 sudo 方式(推荐):
sudo -i # 无需 root 密码,使用当前用户密码 - 或设置 root 密码(不推荐):
sudo passwd root
- 使用 sudo 方式(推荐):
问题 6:安装多个 Ubuntu 22.04 实例
- 需求:需要多个相同版本的 Ubuntu 环境
- 解决方案:
- 导出现有 Ubuntu:
wsl --export Ubuntu-22.04 C:\temp\ubuntu-export.tar - 导入为新实例:
wsl --import Ubuntu-ProjA C:\wsl\Ubuntu-ProjA C:\temp\ubuntu-export.tar --version 2 - 为新实例设置默认用户:然后在 Linux shell 中:
wsl -d Ubuntu-ProjA -u rootadduser yourname usermod -aG sudo yourname echo -e "[user]\ndefault = yourname" > /etc/wsl.conf exit
- 导出现有 Ubuntu:
安装 Docker Desktop
WSL2 配置成功后:
- 从官网下载 Docker Desktop
- 安装时勾选"Use WSL 2 based engine"
- 启动后,Docker 会自动连接到 WSL2 后端
- 验证安装:在 PowerShell 中运行
docker --version和docker run hello-world
最终验证
# 检查WSL状态
wsl --status
# 检查所有发行版及其版本
wsl -l -v
# 检查Docker是否能正常运行
docker run --rm hello-world
重要提示
- LTSC 版本特殊性:企业版 LTSC 精简了虚拟化组件,必须手动配置 Hypervisor 启动类型
- 重启关键性:每次修改虚拟化设置后必须重启
- 权限要求:多数关键命令需要管理员权限
- WSL2 优先:始终使用 WSL2 而非 WSL1,特别是为了 Docker 支持
- 安全实践:在 WSL 中使用
sudo -i而非su切换到 root
总结
安装 WSL2 在 LTSC 版本上的核心是正确配置虚拟化环境,关键命令bcdedit /set hypervisorlaunchtype Auto解决了大多数问题。虽然系统提示可能指向启用 Virtual Machine Platform,但根本原因往往是 Hypervisor 启动配置。完成 WSL2 设置后,Docker Desktop 可以无缝集成,无需启用完整的 Hyper-V 功能。