如果你是最近才开始折腾 Linux 环境,又不想为了一个命令行就装双系统或者天天开关虚拟机,那 WSL2 是目前 Windows 上最值得花半小时去搭好的东西。我以前也图省事用 VMware 跑 Ubuntu,后来发现无论怎么分配内存,开个 IDE、再启动几个服务,风扇都能起飞。切换到 WSL2 之后,日常写代码、跑脚本、玩 Docker、甚至折腾 CUDA 和 ROS2,全都直接在 Windows 桌面下干活,文件系统互通,启动速度以毫秒计,这种体验和虚拟机完全不在一个层次。
这篇主要讲我在第六周把 WSL2 + Ubuntu 完整跑通的过程,从环境检查、安装、换源、配置 systemd、安装 Docker、CUDA、图形界面,到各种“装完就翻车”的排查经验,一次性写清楚。我不会只贴命令,还会解释每个步骤为什么要这么做,方便你装完之后知其然也知其所以然。本文完全基于常见实践,不涉及任何特殊网络环境,镜像源也以国内高校与云厂商官方镜像为例。
1. 环境准备与前置条件
真正开始安装前,先把系统和固件层面的条件确认好。WSL2 不是简单的“一个安装包”,它依赖 Windows 的虚拟化平台和内核组件,前置条件缺一项,后面各种报错就会轮番上演。我见过太多人一上来就 wsl --install,结果卡在“启用虚拟机平台”或者 BIOS 里虚拟化开关没开,白白浪费很多时间。
1.1 检查 Windows 版本与虚拟化开关
WSL2 对 Windows 版本有硬性要求。Windows 10 需要 2004 及以上版本(内部版本号 19041 以上),Windows 11 全版本都支持。系统太老的话,建议先用 Windows Update 把系统补丁打满,否则功能组件可能不完整。
Windows 上检查虚拟化是否开启很简单:打开任务管理器,切到“性能”选项卡,看“CPU”那一栏右下角是否有“虚拟化:已启用”。如果没有,需要进 BIOS/UEFI 把 Intel VT-x 或者 AMD-V 打开,这一步在 WSL2 里面是硬依赖。第六周我重新折腾新机器时,检查完发现虚拟化没启用,BIOS 里改完设置保存重启,问题直接解决。另外需要确认主板固件里是否保留了足够的内存映射空间,极少数机器开了虚拟化但仍报错 0x80370102,把“内存完整性”那些安全功能关掉试试,这只是排查思路,真正的操作麻烦对照自己机器实际情况来。
1.2 启用 Windows 功能
这里说的“Windows 功能”指控制面板里的“启用或关闭 Windows 功能”面板。WSL2 需要两个核心组件:适用于 Linux 的 Windows 子系统 和 虚拟机平台。你可以通过面板手动勾选,也可以用管理员身份打开 PowerShell 执行以下两条命令:
powershell复制dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
执行完提示重启就重启,这个步骤不能跳过,因为底层驱动和虚拟化服务需要重新初始化。我以前急着继续,没重启就往下走,结果 wsl 命令全部不识别。这个教训提醒我,WSL2 的组件安装和驱动加载必须靠重启来生效,省不掉。
1.3 安装 WSL2 内核并设置默认版本
功能组件启用后,还需要安装 WSL2 的 Linux 内核更新包。这一步是 WSL2 和 WSL1 最大的区别所在:WSL1 用的是翻译层模拟 Linux 系统调用,WSL2 直接跑在轻量级 Hyper-V 虚拟机里,拥有完整 Linux 内核,所以兼容性比 WSL1 好非常多。安装方式也很简单,管理员 PowerShell 执行:
powershell复制wsl --update
这个命令会拉取最新的内核组件。然后设置默认版本:
powershell复制wsl --set-default-version 2
检查一下状态:
powershell复制wsl --status
wsl --version
如果第一行显示“默认版本:2”,就可以去装 Ubuntu 发行版了。从这里开始,你实际上已经成功了一大半,因为内核和虚拟化都就位了。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 安装 Ubuntu 发行版与初始配置
WSL2 本身只是一个运行时,你需要再选择一个具体的 Linux 发行版。微软商店里可选的有 Ubuntu、Debian、Kali Linux、openSUSE 等,甚至还有 Fedora Remix。但绝大多数教程和软件包都默认你用的是 Ubuntu,因为它资料最多,遇到问题最容易搜到靠谱解答。
2.1 用命令行安装 Ubuntu 22.04 LTS
市面上常见的 Ubuntu 版本里,22.04 LTS 属于已经打磨得很稳定的长期支持版,无论是做 AI 开发、安装 CUDA、跑 ROS2,各种预编译包基本都能对上。这里我推荐直接用命令行安装,比去商店手动点更可控:
powershell复制wsl --install -d Ubuntu-22.04
这个命令会自动下载、注册发行版,第一次安装完成后会自动弹出 Ubuntu 终端。注意:如果你的 Windows 已经装过旧版 WSL,可能需要先跑一次 wsl --shutdown 再执行上面的命令。安装完成后,Ubuntu 终端里会提示你创建 UNIX 用户名和密码,这个用户名和 Windows 用户名是独立的,密码输入时屏幕不显示是正常现象,不要以为是卡了。
创建用户名的时候,建议避开纯数字开头,也不要带空格和特殊符号。后面很多编译工具和 Shell 脚本默认假定用户目录是 /home/用户名,如果用户名太奇怪,可能会在配置 SSH、ROS 工作空间时踩坑。
提示:如果只想快速体验,也可以直接以 root 身份登录。设置完普通用户后,使用
sudo passwd root给 root 设置一个密码,后续用su切换。但日常操作还是建议用普通用户 + sudo,避免误删系统文件。
2.2 换源与系统更新
Ubuntu 默认的软件源在国外,国内下载速度经常惨不忍睹。安装完的第一步不是急着装软件,而是把 apt 源替换成国内镜像站,这一步能让你后续 apt install 的速度产生质变。
先备份原始源文件:
bash复制sudo cp /etc/apt/sources.li
