第六周的任务看起来简单,就是一句“在Windows上装好WSL2和Ubuntu”,但真正动手的时候,牵扯出来的问题远比你想象的多。从内核版本不匹配、apt源慢到想摔键盘,到systemd起不来、CUDA识别不到显卡、U盘插进去找不到设备——这一路下来,我几乎把网上能踩的坑都踩了一遍。这篇博文就是我这次完整折腾WSL2装Ubuntu的过程记录,把选型思路、操作步骤、踩坑点一次性讲清楚,目标是让看完的人能照着做,从零跑起来,别再走我走过的弯路。
先说清楚这篇文章适合谁:在Windows上做开发,但Linux环境绕不开的人;被虚拟机卡到怀疑人生、想找个轻量替代方案的人;还有那些必须在Linux下跑Docker、CUDA、ROS2、嵌入式工具链,但又不想放弃Windows日常使用的人。这篇文章会尽可能把“为什么这样做”也讲透,不是单纯给你扔一串命令。
1. 为什么这周我选择了WSL2而不是虚拟机或双系统
WSL2全称是Windows Subsystem for Linux 2,本质是一个运行在轻量级虚拟机里的真正Linux内核。它和第一代WSL最大的区别,就是不再靠Windows自己模拟Linux系统调用,而是直接跑了一个完整的Linux内核,所以兼容性高得多,很多原来必须在真机Linux上跑的东西,在WSL2里也能正常工作。
很多人一听“虚拟机”就皱眉,觉得那玩意儿又重又慢,但WSL2和我印象里那种VMware开箱要等半天的体验完全不同。WSL2背后用的是微软自家的Hyper-V虚拟化平台,虚拟机和Windows系统之间是深度集成的,启动一个发行版往往只需要几秒钟,内存占用也比完整虚拟机小得多,平时不吃CPU的时候几乎感觉不到它在跑。更关键的是,WSL2支持直接调用Windows上的NVIDIA显卡驱动,这意味着CUDA、cuDNN这类重计算依赖也能在WSL2里跑,这是老一代WSL完全做不到的。
为了说清楚差异,我把自己实际用过的几种方案列了个对比:
| 方案 | 启动速度 | 内存占用 | 图形界面 | GPU支持 | 与Windows文件互访 | 适合场景 |
|---|---|---|---|---|---|---|
| WSL2 | 秒级 | 低(按需分配) | 可用WSLg | 支持CUDA | 极方便(\wsl$) | 日常开发、Docker、服务端环境 |
| 传统虚拟机(VMware/VirtualBox) | 分钟级 | 高(固定分配) | 完整桌面 | 配置复杂 | 一般(共享文件夹) | 需要完整Linux桌面的场景 |
| 双系统 | 分钟级(切换需重启) | 原生占用 | 完整桌面 | 原生 | 需额外挂载分区 | 极致性能、长期沉浸Linux |
| WSL1 | 秒级 | 低 | 有限 | 不支持 | 方便 | 简单的命令行工具链 |
真实体验下来,如果你是做服务端开发、嵌入式交叉编译、AI模型训练或推理验证,WSL2是最平衡的选择。它保留了Windows的日常使用习惯,又能让你在需要的时侯进入一套完整的Linux环境。而且开发过程中经常要做实验、改环境、重装系统,WSL2的“随时重置、随时重来”特性,比双系统舒坦太多了。
这一周我选它的另一个原因,是周围几个朋友都在用WSL2跑ROS2和AI框架,实际反馈都是“能用、够稳、不折腾”。如果你还在纠结——直接上WSL2,至少先用它把开发环境跑起来,真遇到解决不了的问题再考虑换方案也不迟。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 安装前必须准备好的三件事
WSL2的安装看着简单,但有三个前置条件如果你没做好,后面会反复报错。这一节我按照实际操作顺序,把准备工作拆开讲清楚。
2.1 确认Windows版本与虚拟化支持
WSL2要求Windows 10版本2004及以上(Build 19041以上),Windows 11则完全支持。老版本的Windows 10也可以通过手动方式安装WSL2,但推荐直接升级系统,不然很多功能更新你会跟不上。
在“设置 > 系统 > 系统信息”里能看到当前版本号。如果你的Build版本低于19041,建议先把系统更新到最新,再继续往下走。
虚拟化支持是另一个关键点。WSL2依赖CPU虚拟化技术,Intel的VT-x或者AMD的SVM必须在BIOS里开启。检查方法很简单:在Windows搜索框输入“任务管理器”,打开后切到“性能”选项卡,点CPU,看右下角“虚拟化”那一栏是否为“已启用”。如果是“已禁用”,需要重启电脑进BIOS,在“Advanced”或者“Security”相关菜单里找“Intel Virtualization Technology”或“SVM Mode”,设为Enabled再保存重启。
这个坑特别多人踩过。装了WSL2,第一次启动报错0x80370102,大概率就是BIOS虚拟化没开,或者开了Windows Hypervisor相关的功能但没生效。
2.2 启用Windows功能
在Windows搜索框输入“启用或关闭Windows功能”,打开后勾选以下两项:
虚拟机平台适用于Linux的Windows子系统
勾选后系统会提示重启电脑,这一步不要跳过,别想着“先看看能不能装”。不重启,后续执行wsl --install大概率会报错或者直接卡住。
命令行用户也可以直接用PowerShell执行:
powershell复制dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
两段执行完,重启。这里特别注意:虚拟机平台这
