三分钟启动第一个 QEMU 虚拟机
准备材料
启动你的第一个 QEMU 虚拟机只需要三样东西:
- QEMU 可执行文件(上一步装好了)
- 一个磁盘镜像文件(qcow2 格式,QEMU 原生支持)
- 一个操作系统安装 ISO(Ubuntu、Debian、Windows 均可)
本文以 Ubuntu Server 为例,流程对其他系统一样适用。
第一步:创建磁盘镜像
用 qemu-img 工具创建一个 10GB 的 qcow2 磁盘:
qemu-img create -f qcow2 ubuntu.qcow2 10G
-f qcow2 指定格式。qcow2 是写时复制(COW)格式,磁盘文件初始几乎为空,实际占用空间随使用增长到上限值(这里是 10G)。比 raw 格式节省空间。
检查镜像信息:
qemu-img info ubuntu.qcow2
# image: ubuntu.qcow2
# virtual size: 10G (10737418240 bytes)
# disk size: 196K ← 实际占用,刚创建所以很小
第二步:下载安装 ISO
去 Ubuntu 官方下载页获取 Server 版 ISO。假设文件名叫 ubuntu-24.04-live-server-amd64.iso。
第三步:启动安装
一条命令搞定:
qemu-system-x86_64 \
-accel kvm \
-m 4G -smp 2 \
-cdrom ubuntu-24.04-live-server-amd64.iso \
-drive file=ubuntu.qcow2,format=qcow2,if=virtio \
-nic user,model=virtio-net-pci \
-vga virtio
逐行解释:
| 参数 | 含义 |
|---|---|
-accel kvm | 启用 KVM 加速(没有 KVM 的平台换成 hvf/whpx/tcg) |
-m 4G | 给虚拟机 4GB 内存 |
-smp 2 | 分配 2 个虚拟 CPU 核心 |
-cdrom xxx.iso | 挂载安装 ISO 到虚拟光驱 |
-drive file=...,format=qcow2,if=virtio | 把磁盘镜像挂为 virtio 总线硬盘 |
-nic user,model=virtio-net-pci | 用户模式网络 + virtio 网卡 |
-vga virtio | virtio 显卡,性能比默认好 |
第四步:安装操作系统
QEMU 会弹出图形窗口(或 VNC 窗口)。在里面完成常规安装步骤:选择语言、分区、设置用户名密码等。因为磁盘已经挂好了,安装器会识别到那块 10GB 的 qcow2 磁盘。
安装完成后,关闭虚拟机,重新启动时不加 -cdrom 参数:
qemu-system-x86_64 \
-accel kvm \
-m 4G -smp 2 \
-drive file=ubuntu.qcow2,format=qcow2,if=virtio \
-nic user,model=virtio-net-pci \
-vga virtio
虚拟机直接从磁盘启动,进入你刚装好的系统。
用户模式网络说明
上例用的是 -nic user,model=virtio-net-pci,这是 QEMU 默认的用户模式网络。特点:
- 零配置就能上网:虚拟机自动获得 IP,通过 NAT 访问外部网络
- 外部默认看不到内部:外网不能直接访问虚拟机里的服务
- 端口转发解决:如果宿主机要 SSH 到虚拟机,加参数
-nic user,hostfwd=tcp::2222-:22,然后在宿主机ssh -p 2222 user@localhost
故障排查
KVM 不生效?
启动时 QEMU 会提示 KVM acceleration can't be used。检查:
kvm-ok
ls -la /dev/kvm
groups # 确认你在 kvm 组里
窗口黑屏或分辨率异常?
换 -vga qxl 试试,或加 -display default,show-cursor=on。更多问题见 常见问题。
下一步
恭喜你跑通了第一个虚拟机!接下来可以深入了解: