本文记录从Windows 11 空环境配置WSL2 + Ubuntu 24.04 LTS的完整过程,包括遇到的错误和解决方法。
WSL介绍
什么是wsl,具有哪些作用?
在 Windows 系统中,如果想运行 Linux 环境,传统方式通常需要安装双系统、虚拟机(如 VMware、VirtualBox),或者购买一台 Linux 服务器。但这些方式都有一定成本:
- 双系统:切换麻烦,需要重启电脑;
- 虚拟机:占用大量内存和 CPU;
- 远程服务器:需要网络和额外费用。
为了解决 Windows 与 Linux 共存的问题,微软推出了WSL(Windows Subsystem for Linux,适用于 Linux 的 Windows 子系统)。
其中WSL2(Windows Subsystem for Linux 2)是第二代版本,它通过更接近真实 Linux 内核的方式,让用户可以直接在 Windows 中运行完整的 Linux 环境。
WSL的优势
| 用户群体 | 优势 | 具体作用 |
|---|---|---|
| 👤 普通用户 | 学习 Linux | 无需安装双系统,即可体验完整 Linux 命令环境,学习 Linux 基础操作、文件管理和软件安装 |
| 👤 普通用户 | 使用 Linux 软件 | 可以运行大量 Linux 工具、开源软件和命令行程序 |
| 👤 普通用户 | 无需安装双系统 | Windows 与 Linux 可以同时运行,不需要重启电脑切换系统,降低 Linux 使用门槛 |
| 👨💻 程序员 | 原生 Linux 开发环境 | 使用真实 Linux 内核,支持 GCC、Python、Node.js、Java 等开发环境,与服务器环境高度接近 |
| 👨💻 程序员 | 支持 Docker | 提供接近 Linux 原生的 Docker 运行体验,方便容器开发、测试和部署 |
| 👨💻 程序员 | 编译速度快 | Linux 工具链运行效率高,适合 C/C++、Android、内核等大型项目编译 |
| 👨💻 程序员 | 接近服务器环境 | 大多数服务器运行 Linux,本地开发环境与生产环境更加一致,减少部署兼容问题 |
| 🔧 硬件工程师 | MCU 工具链 | 支持 ARM GCC、RISC-V GCC 等工具,可用于 STM32、ESP32 等嵌入式开发 |
| 🔧 硬件工程师 | 嵌入式 Linux 开发 | 支持 Raspberry Pi、RK3566、RK3586/RK3588、Jetson 等 Linux 硬件平台开发 |
| 🔧 硬件工程师 | 编译 SDK | 可以编译厂商提供的 Linux SDK,包括系统镜像、驱动和应用程序 |
| 🔧 硬件工程师 | 开源项目构建 | 支持 Make、CMake 等构建工具,方便编译 GitHub 上的 Linux 开源项目 |
| 🤖 AI / 科研开发者 | AI 环境搭建 | 支持 PyTorch、TensorFlow 等人工智能框架,方便运行开源模型和复现实验 |
| 🤖 AI / 科研开发者 | GPU 加速计算 | 支持 NVIDIA CUDA,可调用显卡进行深度学习和科学计算 |
| 🤖 AI / 科研开发者 | 科学计算工具 | 支持 Python、Jupyter、数据分析工具,适合算法研究和实验开发 |
WSL的不足
| 不足 | 具体问题 | 影响场景 |
|---|---|---|
| 🖥️ 不适合运行完整 Linux 桌面环境 | WSL2 主要面向命令行和开发环境,虽然支持 Linux GUI 应用,但完整桌面体验不如虚拟机 | KDE、GNOME 等完整 Linux 桌面使用体验较差 |
| 🔌 USB 设备支持有限 | 部分 USB 设备无法直接被 WSL2 识别,需要额外配置 USBIP 等工具 | 调试器、开发板、特殊 USB 外设使用不方便 |
| 📁 Windows 文件系统性能较低 | 在/mnt/c/等 Windows 挂载目录中运行 Linux 项目时,文件读写性能可能下降 | 大型项目编译、Node.js 项目、Git仓库操作可能变慢 |
| 💾 占用一定系统资源 | WSL2 本质上运行一个轻量级虚拟机,会占用内存和 CPU | 老旧电脑或低内存设备可能出现性能下降 |
| 🎮 不适合高性能图形应用 | 虽然支持 WSLg 和 GPU 加速,但图形性能与原生 Linux 或 Windows 应用仍有差距 | 3D建模、游戏开发、专业图形渲染 |
| 🌐 网络结构存在差异 | WSL2 使用虚拟网络,与 Windows 主机网络存在一定隔离 | 本地服务器、端口映射、网络调试需要额外配置 |
| 🔧 硬件直通能力有限 | 某些底层硬件访问不像原生 Linux 方便 | 驱动开发、内核开发、硬件底层调试 |
| 🐧 Linux 内核定制受限 | 使用微软提供的 Linux Kernel,虽然可以自定义,但不像实体 Linux 那样自由 | 修改内核、研究 Linux 底层机制 |
| 📦 存储空间管理复杂 | WSL2 使用虚拟磁盘文件(ext4.vhdx),长期使用可能不断增大 | 大量编译文件、Docker镜像可能占用大量磁盘空间 |
| 🔄 与双系统 Linux 相比兼容性略低 | 某些 Linux 功能和硬件支持不如直接安装 Linux | 专业 Linux 工作站、服务器开发 |
WSL2与虚拟机的区别
| 项目 | WSL2 | VMware |
|---|---|---|
| 启动速度 | 秒级 | 分钟级 |
| 内存占用 | 自动动态调整 | 固定分配 |
| Linux兼容性 | 很高 | 完整 |
| 图形界面 | 可支持 | 更成熟 |
| 文件共享 | 非常方便 | 一般 |
| 游戏/桌面Linux | 不适合 | 更适合 |
windows 11配置WSL2
1、查看Windows版本
运行:
winver本机:
Windows 版本: 10.0.26200.8655属于 Windows 11 新版本,可以支持 WSL2。
2、第一次安装WSL
使用管理员 PowerShell:
wsl --install出现错误:
已禁止(403)完整:
PS C:\WINDOWS\system32> wsl --install 已禁止(403)。原因分析
不是 WSL 功能问题。
原因:
- Windows 下载 WSL/Ubuntu 在线组件失败
- 微软下载服务访问被限制
- 网络环境导致 Microsoft Store / CDN 返回 403
所以改为手动安装。
3、开启windows必要功能
开启linux子系统
管理员 PowerShell:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart检查:
dism.exe /online /get-featureinfo /featurename:Microsoft-Windows-Subsystem-Linux结果:
功能名称 : Microsoft-Windows-Subsystem-Linux 状态 : 已启用说明:
✅ WSL功能开启
开启虚拟机平台
执行:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart检查:
dism.exe /online /get-featureinfo /featurename:VirtualMachinePlatform结果:
功能名称 : VirtualMachinePlatform 状态 : 已启用说明:
✅ WSL2虚拟化支持开启
4、尝试更新WSL
执行:
wsl --status结果:
未安装适用于 Linux 的 Windows 子系统。尝试:
wsl --update错误:
已禁止(403)再次尝试:
wsl --install错误:
已禁止(403)5、手动安装
由于在线安装失败,进入:
GitHub:
https://github.com/microsoft/WSL/releases下载:
Microsoft.WSL_2.9.3.0_x64_ARM64.msixbundle大小:
约:
700 MB安装:
进入下载目录:
cd $env:USERPROFILE\Downloads执行:
Add-AppxPackage .\Microsoft.WSL_2.9.3.0_x64_ARM64.msixbundle安装成功。
检查:
wsl --version输出:
WSL 版本: 2.9.3.0 内核版本: 6.18.35.2-1 WSLg 版本: 1.0.79 Windows 版本: 10.0.26200.8655说明:
✅ WSL2安装完成
安装Ubuntu 24.04(根据自己需要选择)
查看可用系统:
wsl --list --online输出:
NAME Ubuntu Ubuntu-26.04 Ubuntu-24.04 Ubuntu-22.04 ...选择生产环境对应版本:
Ubuntu 24.04 LTS安装:
wsl --install -d Ubuntu-24.04如果电脑的CPU的虚拟化没有开启,则会报错,需要去在开机进入BIOS中开启虚拟化(各个主板进入BIOS不同这里以华硕主板为例)
虽然 Windows 功能开启:
VirtualMachinePlatform 已启用但是 BIOS 中 CPU 虚拟化关闭。
进入 BIOS:
华硕 ROG 主板:
开机:
Delete进入 BIOS。
进入:
Advanced Mode (F7) ↓ Advanced ↓ CPU ConfigurationIntel:
开启:
Intel Virtualization Technology设置:
EnabledAMD:
开启:
SVM Mode设置:
Enabled重新安装 Ubuntu、
再次执行:
wsl --install -d Ubuntu-24.04成功:
正在下载: Ubuntu 24.04 LTS 正在安装: Ubuntu 24.04 LTS 已成功安装分发。 正在启动 Ubuntu-24.04... Provisioning the new WSL instance Ubuntu-24.04创建 Linux 用户:
Create a default Unix user account:输入:
<你自己的用户名> 例如: usernamelili设置密码:
New password: Retype new password:成功:
passwd: password updated successfully进入:
usernamelili@a:/mnt/c/WINDOWS/system32$确认 Ubuntu 版本
Ubuntu 内执行:
cat /etc/os-release应该:
NAME="Ubuntu" VERSION="24.04 LTS (Noble Numbat)"检查 WSL 状态
Windows PowerShell:
wsl -l -v结果:
NAME STATE VERSION Ubuntu-24.04 Running 2确认:
- Ubuntu版本正确
- 使用WSL2
初始化 Ubuntu 环境
sudo apt update
sudo apt upgrade -y