[Github] Quickemu – 用两条命令创建和运行优化的 QEMU 虚拟机

Github发现2026-08-30发布 WarpEdit
562 0 0

Quickemu 是一个 MIT 开源的 QEMU 命令行封装,目标是把“下载系统镜像、生成虚拟机配置、按主机硬件启动 Guest”压缩成一条可重复的工作流。它的核心并不是暴露更多 QEMU 参数,而是让你先选择想运行的系统,再由 quickgetquickemu 处理常见的镜像与硬件配置。需要先说清楚的是:官方 README 明确支持 Linux 和 macOS 作为宿主机,Windows、macOS、Linux 及其他系统是 Guest;本文依据仓库 README、手册、Release 和官方演示整理,截至 2026 年 8 月 30 日未在本机安装或实测虚拟机性能。

Quickemu 用两条命令创建和运行 QEMU 虚拟机封面
Quickemu GitHub 发现文章封面。封面是根据项目的镜像获取、配置生成和虚拟机启动关系制作的概念插图,不是项目实际界面。

它真正简化了什么

直接使用 QEMU 并不难,难的是每次都要重新决定固件、磁盘格式、CPU、内存、显示后端、网络、SPICE、USB、TPM 以及不同 Guest 的兼容参数。对于只想测试一个 Linux 发行版、临时打开 Windows 工具或在 Apple Silicon 上尝试 ARM64 镜像的人来说,完整命令行很快会变成记忆负担。

Quickemu 的做法是把高频决定收进两个脚本:quickget 面向“我要哪个系统”,负责发现上游下载地址、取得镜像并写出配置;quickemu 面向“现在怎么运行”,读取配置并探测主机 CPU、内存、平台和可用加速器,组合出一条 QEMU 启动命令。它仍然允许你改配置,但把第一次启动的门槛从“理解所有 QEMU 参数”降到了“理解一个 Guest 配置文件”。

先看两段命令

quickget 负责下载和配置

项目 README 给出的最小示例是:

quickget nixos unstable minimal

这条命令的结果不只是一个 ISO。按照项目定位,它会下载指定的上游系统镜像,并创建供 Quickemu 使用的 VM 配置文件。你也可以先运行 quickget 查看支持的系统,或使用 --list--list-csv--list-json 获取适合脚本处理的清单;--show--url--check--check-all-arch 则用于了解版本、下载地址和架构可用性。

quickemu 负责启动

取得配置后,第二步是:

quickemu --vm nixos-unstable-minimal.conf

这里的关键不是命令很短,而是两个职责已经分开:镜像获取和配置生成由 quickget 完成,运行时参数组合由 quickemu 完成。以后要重复启动同一台 VM,通常直接使用配置文件即可;要换系统或版本,再回到 quickget 的参数层。这个分工也让 VM 目录可以放在主目录、外置存储或其他用户有权限的位置,而不要求每次都重新生成命令。

Quickemu 工作流示意图,展示 quickget、配置文件、quickemu 与 QEMU 虚拟机的关系
Quickemu 工作流示意:`quickget` 获取系统镜像并写出配置,`quickemu` 读取配置后交给 QEMU 启动 Guest。图中为流程解释图,不是实际终端截图。

宿主机与依赖

Linux 和 macOS

Quickemu 的“运行平台”首先指宿主机。README 明确列出 Linux 与 macOS Host,项目同时提供 Windows 10/11、Windows Server、macOS、Linux、BSD 及其他系统的 Guest 支持。不要把“可以创建 Windows 虚拟机”理解成“可以在 Windows 主机上运行 Quickemu”;Windows Host 这一点在本项目资料中没有得到支持确认。

Linux 上常见的硬件加速路径是 KVM,macOS 上对应的是 HVF;项目脚本会根据平台和 CPU 能力选择配置,必要时可以退回软件翻译路径,但软件模拟通常意味着更高的性能代价。是否能获得理想速度,取决于主机 CPU、内核/系统设置、QEMU 构建方式和 Guest 类型,不能只看 Quickemu 命令本身。

QEMU 和系统工具

从源代码安装时,官方手册列出的依赖不止 QEMU 一个:还包括 Bash、curl、coreutils、jq、Python 3、EFI/OVMF、SPICE、VirtFS、swtpm、USB/PCI 工具以及用于显示和同步的若干组件。Ubuntu、Debian、Fedora、Arch 和 NixOS 可以使用原生打包、PPA、AUR 或 Nix 方式处理这组依赖;其他发行版需要自行寻找等价包。

版本还存在一个需要留意的口径差异:随 4.9.9 Release 发布的说明写明 QEMU 6.1.0 minimum,而仓库手册正文仍出现 QEMU 6.0.0 or newer。实际准备环境时应按较新的 Release 说明采用 QEMU 6.1 以上,并在遇到启动异常时回查当前版本手册和发行版打包信息。

从零创建 Linux Guest

如果你的目标是测试发行版,Quickemu 的流程很直接:

  1. 先用 quickget 查看可用系统、发行版版本和架构,再选择一个具体 Guest。
  2. 执行下载命令,让项目取得上游镜像并写出 .conf
  3. quickemu --vm 文件名.conf 启动虚拟机,按 Guest 安装程序完成安装。
  4. 安装 Guest 侧工具:Linux 常见的是 spice-vdagent,需要文件共享时再配置对应的 SPICE WebDAV 或 VirtIO 方案。
  5. 后续通过同一个配置文件重新启动、创建快照、调整显示尺寸或加入端口转发。

这一流程适合把 VM 当作可移动的测试目录保存,而不是把所有状态藏在某个 GUI 的全局库里。代价是你需要自己管理 ISO、qcow2 磁盘、EFI 变量、配置文件和备份;删除磁盘或整个 VM 前,应确认是否还需要保留这些文件。

配置文件能改什么

CPU、内存和磁盘

生成的配置文件至少会涉及 Guest 类型、安装 ISO 和磁盘镜像路径。官方配置手册允许通过 cpu_coresramdisk_size 覆盖自动推断的资源,例如:

guest_os="linux"
cpu_cores="4"
ram="8G"
disk_size="32G"
disk_img="debian-test/disk.qcow2"
iso="debian-test/installer.iso"

Quickemu 会根据主机规格选择默认 CPU 核数和内存,但“自动选择”只适合先跑起来,不一定适合稳定的构建、编译或数据库负载。磁盘可以选择 preallocation="metadata" 等预分配模式;它会影响初始空间和磁盘扩展方式,不能笼统地说某个模式对所有 SSD 或文件系统都更快。

网络与端口

普通桌面 Guest 可以使用默认网络;需要从主机访问 Guest 服务时,可在配置中加入端口映射,例如 port_forwards=("8123:8123" "8888:80")。如果要完全禁用网络,使用 network="none";希望 Guest 只能访问自身虚拟设备时,手册还提供 network="restrict"。桥接网络则需要主机已有网桥,并要自行管理 MAC 地址、局域网暴露和 Guest 防火墙。

这些选项影响的是隔离边界,不是普通偏好。给测试环境开放网络、把端口转发到局域网,或者把 Guest 接入桥接网络前,应先明确 Guest 内部运行的程序是否可信。

Windows 的 TPM 与安全启动

Quickemu 支持 Windows 10/11,Windows 11 配置会加入软件模拟 TPM,默认还会使用 Secure Boot 相关设置。配置手册对应的字段是 tpm="on"secureboot="on";Windows Guest 还会使用 VirtIO 驱动镜像。Windows 的 ISO、评估版或 Server 版本仍受 Microsoft 自身许可和下载条件约束,Quickemu 只负责虚拟机工作流,不替你解决授权问题。

ARM64 与系统范围

4.9.9 Release 的重要变化是完整 ARM64/aarch64 Guest 支持:在 ARM64 Host 上可以运行原生架构 Guest,在 x86_64 Host 上也可以尝试软件模拟。quickget 会根据系统和架构筛选可用下载,并提供 --arch--check-all-arch 之类的选项。这里要区分“项目能生成该架构配置”和“某个发行版当前真的提供可用镜像”,后者仍取决于上游下载站和具体版本。

README 将支持范围描述为 nearly 1000 个操作系统版本/edition,覆盖 Ubuntu 及官方 flavour、许多 Linux 发行版、BSD 和一些非主流系统。广度很适合做分发版测试,但也意味着下载器需要持续适配上游命名、镜像目录和校验文件;使用前通过 --show--url--check 确认目标版本,不要把历史上出现过的条目当成永久可下载。

显示、共享与快照

Quickemu 支持 GTK、SDL、macOS Cocoa、SPICE 等显示后端,可使用 --fullscreen--width--height 调整显示方式,也能选择 spicyremote-viewer。SPICE 还承担剪贴板、USB 重定向和部分文件共享能力;Guest 侧没有安装对应工具时,Host 侧的参数不会凭空带来复制粘贴或共享目录。

项目还提供磁盘快照的创建、恢复、删除和信息查看命令,以及 --shortcut--delete-disk--delete-vm 等管理选项。特别是删除类参数应该视作不可逆操作,先备份配置和需要保留的磁盘,再清理 VM 目录。

把自动化边界看清

镜像来源与校验

quickget 的便利来自它替你处理了大量上游下载地址,但下载地址、发行版版本、架构和校验算法都会变化。项目会对部分镜像做哈希校验,也提供 --check--check-all-arch;这能减少输错 URL 的机会,却不等于所有上游发行版都拥有相同的供应链保障。对生产测试、合规环境或包含敏感数据的 Guest,仍应记录镜像来源、校验结果和版本。

macOS Guest 不是一键完成

项目支持多代 macOS Guest,并能自动下载恢复镜像、OpenCore 和 OVMF 等组件,但官方 Wiki 明确提醒 macOS 安装可能比较棘手。安装流程涉及恢复环境、磁盘工具、APFS、重启后的启动项选择以及不同版本的 VirtIO 能力;在 Apple Silicon、AMD CPU、VPN、显示和音频场景下还可能出现额外差异。Quickemu 把启动参数自动化了,不会抹平 Apple 的系统许可、硬件兼容和安装政策。

如果你的主要目标是稳定运行日常桌面应用,应该先确认 Guest 类型、主机架构、QEMU 版本和图形加速边界,再决定是否值得投入排错时间;如果目标只是快速测试发行版,Linux Guest 往往是更容易验证的起点。

版本、维护与许可证

截至 2026 年 8 月 30 日,仓库页面显示 15,909 Stars、725 forks 和 68 个开放 Issue;最新 Release 是 4.9.9,发布于 2026 年 2 月 10 日。4.9.9 集中加入 ARM64 Guest 支持、qcow2 磁盘 I/O 和 TCG 调优、SPICE 显示重连、macOS 显示/时序/音频修正,以及 Azure Linux 和 Ubuntu Desktop ARM64 等下载支持。

主分支在 2026 年仍有 Nix、依赖、发行版下载器和手册维护提交,但最近 Release 与最近提交不是同一时间尺度。更稳妥的使用方式是锁定一个 Release,保存自己的 .conf,升级前重新检查 QEMU 最低版本和目标 Guest 的下载规则。许可证已经由仓库 License API 明确为 MIT;系统镜像、Guest 操作系统和第三方固件的许可则需要分别遵守各自条款。

结论与官方链接

Quickemu 最适合这样的人:宿主机是 Linux 或 macOS,希望用命令行快速准备多种 Guest,愿意保留 VM 配置和磁盘文件,并且不想为每一种系统手写完整 QEMU 参数。它把“能启动”这一步做得更短,把常见的主机硬件、显示、网络和 Guest 特化选项做成可读的配置入口。

但它不是一层把所有虚拟化复杂度都消失的魔法。宿主机依赖、KVM/HVF/TCG 差异、镜像上游变化、Windows 与 macOS 的许可和安装边界、USB/网络暴露、磁盘备份,仍然需要用户自己判断。建议先用 Linux Guest 跑通 quickget → .conf → quickemu,再按目标系统逐项增加 TPM、端口转发、SPICE、ARM64 或 macOS 相关配置。

© 版权声明

相关文章

暂无评论

none
暂无评论...