1. 为什么我会把 Ubuntu 20.04 和 QEMU 放在一起讲
先交代一个背景。上个月我在做内核模块和交叉编译的实验,手头是一台 Windows 笔记本,但目标运行环境必须是一个干净的 Ubuntu 系统。一开始我图省事,直接在 VMware 里装了一个 Ubuntu 22.04,结果在编译某个老版本内核模块的时候,编译器行为和目标平台差异太大,折腾两天都没对上。后来换成 Ubuntu 20.04 搭配 QEMU 方案,问题立刻清晰了很多——这套组合让我第一次真正体会到“底层环境可控”有多重要。
1.1 这两个关键词的组合不是偶然
Ubuntu 20.04 是 2020 年 4 月发布的 LTS 版本,官方支持到 2030 年。它的特殊之处在于,很多老牌开源项目的依赖树都停留在这一代系统上。最典型的就是 ROS Noetic,它官方只支持 Ubuntu 20.04,想跑 Noetic 的同学绕不开这个版本。另外像一些嵌入式工具链、老版本 GCC、特定版本的 Python 环境,在 20.04 上表现最稳定。这不是说 22.04 不好,而是很多软件生态的“舒适区”恰好落在 20.04 上。
QEMU 则是一个纯软件的全系统模拟器。它和 VirtualBox、VMware 最大的不同是:不挑宿主机架构,也不挑客户机架构。你可以在一台 x86 的笔记本上模拟出 ARM 开发板、MIPS 路由器、甚至 RISC-V 的环境。对做嵌入式开发和内核学习的人来说,这几乎是刚需。很多热心网友搜索“qemu arm m3”就是想用 QEMU 模拟 Cortex-M3 开发板跑裸机程序。
把这两者放在一起,解决的是一个很实际的问题:你既需要一个稳定的基础系统作为宿主,又需要一套灵活的模拟环境去跑各种实验。Ubuntu 20.04 做宿主足够稳,QEMU 做模拟层足够灵活,主客配合下来,从内核模块调试到嵌入式固件开发都能覆盖。
1.2 这套方案适合什么样的读者
明确一下受众。如果你属于下面这几类人,这篇文章对你会很有用:
- 刚接触 Linux 的学生,需要在本地搭一个不容易弄坏主机的实验环境;
- 做嵌入式开发的工程师,需要在 x86 电脑上模拟 ARM 开发板;
- 做内核或驱动开发的人,需要一个可以随时快照、随时回滚的测试环境;
- 想搭 ROS Noetic 开发环境但不想重装系统的同学。
如果你只是需要一个日常办公用的 Linux 桌面,那直接装 Ubuntu 22.04 或者 24.04 会更省心,没必要绕这么大一圈。但如果你追求的是“环境可控、踩坑可复现、系统随便折腾”,那 Ubuntu 20.04 加 QEMU 这套组合比任何现成虚拟机都合适。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. Ubuntu 20.04 到手前的三选一:双系统、虚拟机、WSL2
在安装 QEMU 之前,你得先有一个能用的 Ubuntu 20.04 环境。这里有三条路:物理机双系统、传统虚拟机、WSL2。很多人一上来就问“哪个好”,其实没有标准答案,只看你的场景适合哪一种。
2.1 物理机双系统:性能最完整,代价是分区和引导
如果你的电脑配置不差,而且你确定未来几个月都要在 Linux 下重度工作,那我建议直接装双系统。Ubuntu 20.04 的 ISO 从官网下载就行,大小 2 到 4 GB,用 Rufus 或 Ventoy 做成启动 U 盘。
安装过程有几个关键点容易被忽略。第一,进 BIOS 关闭 Secure Boot,否则 U 盘引导大概率失败。第二,分区时建议手动分区:/ 根分区 50 GB 起步,/home 单独分一个区放个人文件,swap 分区给 8 GB 就够。第三,如果电脑原本是 Windows,安装时选择“Install Ubuntu alongside Windows Boot Manager”,grub 会自动识别 Windows 引导项,开机时让你选系统。
这里提醒一个容易踩的坑:有些电脑是 NVMe 固态加 UEFI 引导,安装完成之后进入 grub 菜单,发现 Windows 启动项不见了。这不是 Ubuntu 的错,而是因为 Windows 的 EFI 分区没有被正确挂载。解决办法是进 Ubuntu 后执行 sudo update-grub 它会重新扫描 EFI 分区并生成 Windows 的引导项。如果还不行,手动挂载 Windows EFI 分区后再次 update-grub,基本都能解决。
2.2 传统虚拟机里装 Ubuntu:适合快速验证和过渡
如果只是临时用一下,或者不想动物理机的分区,那在 VMware Workstation 或 VirtualBox 里装 Ubuntu 20.04 是最省事的。新建虚拟机时选择 Ubuntu 64-bit 模板,内存建议分配 4 GB 以上,磁盘 40 GB 就够日常用。
虚拟机方案的优点是可以随意拍快照,系统搞坏了三秒钟回滚。缺点是嵌套虚拟化的性能损耗,不过如果你只是做普通开发,完全感受不到差别。有一点要注意:QEMU 在虚拟机里跑的时候,如果也需要硬件加速,那需要开启“虚拟化 Intel VT-x/AMD-V”选项,否则 QEMU 只能纯软件模拟,速度会非常慢。也就是说,你可以在 VMware 里装 Ubuntu,再在 Ubuntu 里跑 QEMU,属于套娃式方案,性能会打折,但作为学习环境是完全可行的。
2.3 WSL2:轻量但有限制
WSL2 是 Windows 自带的 Linux 子系统,安装方式命令行执行 wsl --install -d Ubuntu-20.04 就会自动拉取镜像。WSL2 的优点是启动快、几乎不占额外资源,和 Windows 文件系统互通非常方便。我用 WSL2 跑过 Ubuntu 20.04 加 QEMU,日常做命令行操作没问题,但有两个限制很影响体验。
第一个限制是 WSL2 本身是一个轻量虚拟机,它的网络模式是 NAT,QEMU 里再用用户模式网络的话,端口转发会变得很绕。第二个限制是图形界面。WSL2 的 WSLg 能跑 GUI 应用,但对 QEMU 的
