Quickemu 快速上手指南:用 quickget + quickemu 一键创建并运行优化的 Windows、macOS 与 Linux 虚拟机
【免费下载链接】quickemuQuickly create and run optimised Windows, macOS and Linux virtual machines项目地址: https://gitcode.com/GitHub_Trending/qu/quickemu
Quickemu 是一个构建在 QEMU 之上的虚拟机构建与运行管理器,它的设计哲学是"自动做正确的事"——你只需告诉它想运行哪个操作系统,quickget会自动下载上游系统镜像并生成虚拟机配置,quickemu会枚举宿主机硬件并以最适合当前电脑的优化配置启动虚拟机。读完本文,你将掌握从安装依赖、下载系统、手工编写 VM 配置文件,到管理快照、端口转发、文件共享与 USB 直通的完整实战能力。
Quickemu 是什么
Quickemu 是优秀开源虚拟机 QEMU 的一个封装器(wrapper),核心理念是消除 QEMU 繁琐的配置负担——不需要穷举式的配置选项。你决定要运行哪个操作系统,Quickemu 负责其余的一切:
quickget自动下载上游操作系统(ISO、恢复镜像或磁盘镜像)并生成配置文件;quickemu枚举你的硬件,以最适合你电脑的优化配置启动虚拟机。
项目的原始目标,是让人们可以快速测试 Linux 发行版,且满足两个约束:
- 虚拟机及其配置可以存放在任何位置(例如外部 USB 存储或你的主目录),
- 运行虚拟机不需要任何提升的权限(无需 root/sudo)。
如今,Quickemu 已提供对macOS、Windows、绝大多数 BSD、以及 FreeDOS、Haiku、KolibriOS、OpenIndiana、ReactOS 等非 Linux 操作系统的全面支持。
从源码结构看,整个项目由三个 Bash 脚本构成,规模清晰可读:
| 文件 | 行数 | 职责 |
|---|---|---|
| quickemu | 约 2934 行 | 读取 VM 配置、枚举硬件、组装 QEMU 参数并启动/管理虚拟机 |
| quickget | 约 4059 行 | 下载操作系统镜像、查询系统信息、生成 VM 配置 |
| quickreport | 121 行 | 收集宿主机环境信息用于问题诊断 |
三份随仓库提供的用户手册是权威参考:quickemu.1(quickemu 命令行手册)、quickget.1(quickget 手册)、quickemu_conf.5(VM 配置文件手册)。
核心特性
- 宿主机支持Linux 与 macOS;
- macOS:Sequoia、Sonoma、Ventura、Monterey、Big Sur、Catalina、Mojave;
- Windows 10 与 11(含 TPM 2.0 支持)、Windows Server 2022 / 2019 / 2016;
- ARM64 guest 支持:可在 ARM 宿主上原生运行 aarch64 虚拟机,也可在 x86_64 宿主上以模拟方式运行;
- Ubuntu及所有官方 Ubuntu flavor(Edubuntu、Kubuntu、Lubuntu、Ubuntu Budgie、Ubuntu Cinnamon、Ubuntu Kylin、Ubuntu MATE、Ubuntu Server、Ubuntu Studio、Ubuntu Unity、Xubuntu 等);
- 支持近 1000 个操作系统版本;
- 完整的SPICE支持,包括宿主/客户机剪贴板共享;
- VirtIO-webdavd文件共享(Linux 与 Windows guest);
- VirtIO-9p文件共享(Linux 与 macOS guest);
- QEMU Guest Agent支持:可通过标准 QMP 命令访问系统级 agent;
- Samba文件共享(Linux、macOS、Windows guest,需宿主机装有
smbd); - VirGL图形加速;
- USB 设备直通与智能卡直通;
- 自动 SSH 端口转发到 guest;
- 网络端口转发;
- 全双工音频;
- 盲文(Braille)支持;
- EFI(可选 SecureBoot)与Legacy BIOS启动。
版本与运行前提(源码确认)
从 quickemu 源码可以看到几个硬性约束:
- 当前仓库版本号为
VERSION="4.9.9"; - 启动时会检测
qemu-system-${ARCH_VM}与qemu-img,二者必须已安装; - QEMU 版本必须 ≥ 6.1.0,否则直接报错退出(
ERROR! QEMU 6.1.0 or newer is required); - 脚本要求 bash 4.0 或更新版本(quickget 中有显式检查)。
快速开始
安装好 Quickemu 后,创建并运行一个虚拟机只需两个步骤:
第一步:quickget自动下载你想运行的操作系统的 ISO 镜像,并创建该虚拟机的配置文件:
quickget nixos unstable minimal第二步:quickemu使用quickget生成的配置文件启动虚拟机:
quickemu --vm nixos-unstable-minimal.conf不带任何参数直接执行quickget,会列出全部受支持的操作系统列表。
安装依赖
从源码安装时,需要手动安装以下依赖:
- [QEMU](6.0.0 或更新,需带 GTK、SDL、SPICE 与 VirtFS 支持)
- bash(4.0 或更新)、Coreutils、curl、EDK II、gawk、grep、glxinfo、jq、LSB、pciutils、procps、python3、mkisofs、usbutils、util-linux(含
uuidgen)、sed、socat、spicy、swtpm、xdg-user-dirs、xrandr、zsync、unzip
Ubuntu、Debian、Fedora、Arch 和 NixOS 主机的官方打包会自动处理这些依赖;其他发行版需要自行安装上述软件或其等价替代。
Debian 系(Trixie 之前的版本):
sudo apt-get install bash coreutils curl genisoimage grep jq mesa-utils ovmf pciutils procps python3 qemu sed socat spice-client-gtk swtpm-tools unzip usbutils util-linux xdg-user-dirs xrandr zsyncFedora(41 之前的版本):
sudo dnf install bash coreutils curl edk2-tools genisoimage grep jq mesa-demos pciutils procps python3 qemu sed socat spice-gtk-tools swtpm unzip usbutils util-linux uuidgen-runtime xdg-user-dirs xrandr zsyncGentoo:(注意:根据系统配置,可能需要用sys-firmware/edk2-ovmf替代sys-firmware/edk2-ovmf-bin)
sudo emerge --ask --noreplace app-emulation/qemu \ app-shells/bash \ sys-apps/coreutils \ net-misc/curl \ sys-firmware/edk2-ovmf-bin \ sys-apps/gawk \ sys-apps/grep \ x11-apps/mesa-progs \ app-misc/jq \ sys-apps/pciutils \ sys-process/procps \ app-cdr/cdrtools \ sys-apps/usbutils \ sys-apps/util-linux \ sys-apps/sed \ net-misc/socat \ app-emulation/spice \ app-crypt/swtpm \ x11-misc/xdg-user-dirs \ x11-apps/xrandr \ net-misc/zsync \ app-arch/unzipmacOS 宿主机(通过 brew):
brew install bash cdrtools coreutils jq python3 qemu usbutils samba socat swtpm zsync之后克隆项目并进入目录:
git clone https://github.com/quickemu-project/quickemu cd quickemuquickemu 命令行参数详解
quickemu的用法为quickemu --vm <配置文件> [参数]。以下为完整参数表(与 docs/quickemu.1.md 及脚本内置 usage 一致):
| 参数 | 说明 |
|---|---|
--vm <conf> | 指定虚拟机配置文件(必选) |
--access <mode> | 启用远程 SPICE 访问:local(默认)、remote、clientipaddress |
--braille | 启用盲文支持,需要 SDL 显示后端 |
--cpu-pinning <map> | 指定宿主机核心与 guest 核心的映射关系 |
--delete-disk | 删除磁盘镜像与 EFI 变量 |
--delete-vm | 删除整个虚拟机及其配置 |
--display <backend> | 选择显示后端:gtk(默认)、sdl、cocoa、none、spice、spice-app |
--fullscreen | 全屏模式启动虚拟机(Ctl+Alt+f退出全屏) |
--ignore-msrs-always | 配置 KVM 始终忽略未处理的机器相关寄存器 |
--ignore-tsc-warning | 跳过 AMD 宿主机上 macOS VM 的 TSC 稳定性警告 |
--kill | 若 VM 进程正在运行则将其杀死 |
--offline | 覆盖所有网络设置,以离线方式启动 VM |
--shortcut | 创建桌面快捷方式 |
--snapshot apply <tag> | 应用/恢复一个快照 |
--snapshot create <tag> | 创建一个快照 |
--snapshot delete <tag> | 删除一个快照 |
--snapshot info | 显示磁盘/快照信息 |
--status-quo | 不将任何更改提交到磁盘/快照(对应 QEMU 的-snapshot,见 quickemu) |
--viewer <viewer> | 选择替代查看器:spicy(默认)、remote-viewer、none |
--width <width> | 设置 VM 屏幕宽度,须与--height同时使用 |
--height <height> | 设置 VM 屏幕高度,须与--width同时使用 |
--ssh-port <port> | 手动设置 SSH 端口 |
--spice-port <port> | 手动设置 SPICE 端口 |
--public-dir <path> | 暴露共享目录:默认使用 xdg-user-dir PUBLICSHARE;可传具体目录或none |
--monitor <type> | 设置 monitor 连接类型:socket(默认)、telnet、none |
--monitor-telnet-host <ip/host> | 设置 monitor 的 telnet 主机(默认localhost) |
--monitor-telnet-port <port> | 设置 monitor 的 telnet 端口(默认4440) |
--monitor-cmd <cmd> | 向 monitor 发送命令(示例:system_powerdown) |
--serial <type> | 设置串口连接类型:socket(默认)、telnet、none |
--serial-telnet-host <ip/host> | 设置串口的 telnet 主机(默认localhost) |
--serial-telnet-port <port> | 设置串口的 telnet 端口(默认6660) |
--keyboard <type> | 设置键盘:usb(默认)、ps2、virtio |
--keyboard_layout <layout> | 设置键盘布局(默认en-us) |
--mouse <type> | 设置鼠标:tablet(默认)、ps2、usb、virtio |
--usb-controller <type> | 设置 USB 控制器:ehci(默认)、xhci、none |
--sound-card <type> | 设置声卡:intel-hda(默认)、ac97、es1370、sb16、usb-audio、virtio-sound-pci、none |
--sound-duplex <type> | 设置声卡双工模式:hda-micro(默认,扬声器/麦克风)、hda-duplex(线路输入/输出)、hda-output(仅输出) |
--extra_args <arguments> | 向 QEMU 传递额外参数 |
--version | 打印版本 |
参数校验与自动适配(源码佐证)
从 quickemu 的display_param_check可以看到快速"做正确的事"的具体实现:
- 请求
--braille时自动把显示后端切换为sdl,并把 USB 控制器升级为xhci(以支持全速盲文设备); - GTK 显示不可用时自动回退到 SDL;
- 在 macOS(Darwin)宿主机上只允许
cocoa与none两种显示后端; - 自动探测
glxinfo输出的 OpenGL ES GLSL 版本,低于 2.x 时关闭 3D 加速(gl="off")。
端口类参数(--ssh-port、--spice-port、telnet 端口)会被校验必须是数字(ports_param_check);声卡与双工模式也有白名单校验(sound_card_param_check);tpm="on"时若找不到swtpm会直接报错(tpm_param_check)。
理解 VM 配置文件
Quickemu 使用一个简单的 key=value 配置文件描述虚拟机。quickget会自动生成它,你也可以手工编写。以下为配置文件支持的全部选项及其默认值(来自 docs/quickemu_conf.5.md):
# 小写变量仅用于 VM 配置文件中 boot="efi" # efi(默认)或 legacy(Legacy BIOS) cpu_cores="" disk_img="" # 系统磁盘镜像路径(qcow2) disk_size="" # 虚拟磁盘大小,如 "16G" display="" # 覆盖默认显示后端 extra_args="" # 追加传给 QEMU 的参数 fixed_iso="" # 以只读方式挂载的 ISO(如 VirtIO 驱动盘) floppy="" # 软盘镜像路径 guest_os="linux" # linux / linux_old / windows / macos 等 img="" iso="" # 安装用 ISO 镜像 macaddr="" macos_release="" network="" port_forwards=() # 如 ("8123:8123" "8888:80") preallocation="off" # off / metadata / falloc / full ram="" secureboot="off" tpm="off" usb_devices=() # 如 ("046d:082d") viewer="spicy" ssh_port="" spice_port="" public_dir="" monitor="socket" # socket / telnet / none monitor_telnet_port="4440" monitor_telnet_host="localhost" monitor_cmd="" serial="socket" # socket / telnet / none serial_telnet_port="6660" serial_telnet_host="localhost" usb_controller="ehci" # ehci(USB2.0)、xhci(USB3.0) keyboard="usb" # ps2、usb、virtio keyboard_layout="en-us" mouse="tablet" # ps2、usb、tablet、virtio注意:配置文件中的
ram、cpu_cores等小写变量仅供 VM 配置文件使用;命令行同名参数优先级更高。
三种典型 guest 配置
最小 Linux 配置示例:
guest_os="linux" disk_img="debian-bullseye/disk.qcow2" iso="debian-bullseye/firmware-11.0.0-amd64-DVD-1.iso"默认 macOS 配置示例:
guest_os="macos" img="macos-catalina/RecoveryImage.img" disk_img="macos-catalina/disk.qcow2" macos_release="catalina"guest_os="macos"指示 Quickemu 针对 macOS 进行优化;macos_release="catalina"针对特定 macOS 版本优化——例如 VirtIO 网络与内存气球(Memory Ballooning)在 Big Sur 及更新版本可用,早期版本不可用;VirtIO 块设备(磁盘)在 Catalina 及更新版本才稳定支持。
默认 Windows 11 配置示例:
guest_os="windows" disk_img="windows-11/disk.qcow2" iso="windows-11/Win11_EnglishInternational_x64.iso" fixed_iso="windows-11/virtio-win.iso" tpm="on" secureboot="on"guest_os="windows"指示quickemu针对 Windows 优化;fixed_iso=指定提供 VirtIO 驱动的 ISO 镜像;tpm="on"让quickemu使用swtpm创建软件模拟的 TPM 设备——Windows 11 安装所必需。
BIOS 与 EFI
自 Quickemu 2.1.0 起efi是默认启动方式。如需启用传统 BIOS,在 VM 配置中添加:
boot="legacy"调优 CPU、内存与磁盘
默认情况下,Quickemu 会根据宿主机的规格自动计算分配给 VM 的 CPU 核心数与内存。你可以在配置中显式覆盖:
cpu_cores="4" # 分配给 VM 的 CPU 核心数 ram="4G" # 分配给 VM 的内存 disk_size="16G" # 分配给 VM 的虚拟磁盘大小从源码看,自动分配策略为(quickemu 的configure_ram):宿主机内存 ≥128G 分配 32G、≥64G 分配 16G、≥16G 分配 8G、≥8G 分配 4G,否则默认 2G;且 Windows guest 最少需要 4G、macOS guest 最少需要 8G,低于该值时若未手工指定ram会直接报错。CPU 检测则通过nproc/sysctl获取核心数,读取/sys/class/dmi/id/sys_vendor识别是否运行在虚拟机内(QEMU/VirtualBox 会回退到 TCG 软件模拟),并检查 Intel VT-x(vmx)或 AMD SVM 标志(quickemu 的configure_cpu)。
磁盘预分配
磁盘预分配模式可选off(默认)、metadata、falloc、full。预分配 metadata 的镜像初始体积更大,但在镜像需要增长时性能更好:
preallocation="metadata"CD-ROM 与软盘
把宿主机 ISO 暴露给 guest:
fixed_iso="/path/to/image.iso"挂载软盘镜像:
floppy="/path/to/floppy.img"文件共享
所有文件共享选项都只把当前用户的~/Public(或本地化变体)目录暴露给 guest 虚拟机。
Samba(Linux / macOS / Windows guest):宿主机存在smbd时,Quickemu 会自动启用 QEMU 内建的 Samba 共享。Ubuntu 上安装最小 Samba 组件:
sudo apt install --no-install-recommends samba一切就绪后,启动虚拟机时终端会打印smbd地址,例如:
- smbd: On guest: smb://10.0.2.4/qemuWindows guest 用户可右键"此电脑"→"添加一个网络位置",粘贴该地址并把smb:去掉、斜杠改为反斜杠(本例为\\10.0.2.4\qemu)。对应源码位于 quickemu:检测到smbd可执行文件时,向 QEMU 网络追加,smb=${PUBLIC}。
SPICE WebDAV:Linux guest 内通过dav://localhost:9843/访问;macOS guest 使用 SPICE 显示时提示在 Finder 中"Connect to Server → http://localhost:9843/"(quickemu)。
VirtIO-9P:Linux guest 内挂载:
sudo mount -t 9p -o trans=virtio,version=9p2000.L,msize=104857600 <共享标签> ~/$(basename <共享目录>)macOS guest 使用sudo mount_9p <共享标签>,且宿主共享目录需为 777 权限(drwxrwxrwx)才能无缝集成。QEMU 侧由-fsdev local,id=fsdev0,path=...,security_model=mapped-xattr -device virtio-9p-pci实现(quickemu)。
网络配置
端口转发:
port_forwards=("8123:8123" "8888:80")上例中:宿主机 8123 端口转发到 guest 的 8123 端口;宿主机 8888 端口转发到 guest 的 80 端口。源码实现为给 QEMU 网络追加hostfwd=tcp::HOST-:GUEST与hostfwd=udp::HOST-:GUEST(quickemu)。
完全禁用网络:
network="none"受限网络(restrict):将网络限制在 guest 与其虚拟设备之间,隔离宿主与外部网络——可用于防止 guest 内软件"打电话回家",同时保留 guest 内部网络:
network="restrict"桥接网络:连接到预先配置好的网络桥接:
network="br0"如需持久化桥接网卡的 MAC 地址,可添加macaddr。QEMU 要求 MAC 在52:54:00:AB:00:00 – 52:54:00:AB:FF:FF范围内:
macaddr="52:54:00:AB:51:AE"USB 重定向
Quickemu 同时支持 SPICE 直通与宿主直通两种 USB 重定向。
警告:USB 设备被重定向后,在 guest 结束重定向之前宿主操作系统将无法使用该设备。因此不要重定向键盘、鼠标等输入设备,否则可能难以(甚至无法)恢复操作。
SPICE 重定向(推荐):无需提升权限。以--display spice启动后:
spicy(默认):菜单Input→Select USB Device for redirection选择要挂到 guest 的设备;remote-viewer:菜单File→USB device selection。
要保证功能正常,需在 guest 内安装 SPICE Guest Tools。NixOS 上若遇到Error setting facl: Operation not permitted,可启用 NixOS 选项:
virtualisation.spiceUSBRedirection.enable = true;宿主直通(不推荐):仅为兼容旧版 Quickemu 而保留。在配置中添加usb_devices(格式为厂商ID:产品ID):
usb_devices=("046d:082d" "046d:085e")若 USB 设备不可写,quickemu会打印修改设备访问权限的命令,例如:
- USB: Host pass-through requested: - Sennheiser Communications EPOS GTW 270 on bus 001 device 005 needs permission changes: sudo chown -v root:user /dev/bus/usb/001/005 ERROR! USB permission changes are required 👆对应实现见 quickemu 的configure_usb:通过lsusb -d vendor:product定位总线与设备号,检查/dev/bus/usb/<bus>/<dev>可写性,最终追加-device usb-host,bus=hostpass.0,vendorid=0x...,productid=0x...。
TPM
自 Quickemu 2.2.0 起可为 guest 添加软件模拟 TPM 设备,在 VM 配置中加入tpm="on"即可。quickget会自动为 Windows 11 虚拟机添加该行。实现上,configure_tpm会以 unix socket 方式启动swtpm(--ctrl type=unixio、--tpmstate、--tpm2),并在启动 QEMU 时挂接tpm-tis(x86_64)或tpm-tis-device(aarch64)设备(quickemu、quickemu)。
创建各类 guest 的实战指南
Linux guest
Ubuntu:quickget自动下载指定版本并生成配置:
quickget ubuntu 22.04 quickemu --vm ubuntu-22.04.conf按常规完成安装。安装后建议:
- 安装 SPICE agent(
spice-vdagent)以启用复制/粘贴与 USB 重定向:sudo apt install spice-vdagent
- 安装 SPICE WebDAV agent(
spice-webdavd)以启用文件共享:sudo apt install spice-webdavd
Ubuntu daily-live 镜像:quickget可借助zsync下载/刷新 daily-live 镜像,适合 Ubuntu 开发者与测试者:
quickget ubuntu daily-live quickemu --vm ubuntu-daily-live.conf可以随时重复执行quickget ubuntu daily-live刷新开发镜像,它会自动切换到新的版本系列。
Ubuntu Flavours:所有官方 flavor 均支持,把ubuntu换成对应名称即可:edubuntu、kubuntu、lubuntu、ubuntu-budgie、ubuntucinnamon、ubuntukylin、ubuntu-mate、ubuntu-server、ubuntustudio、ubuntu、ubuntu-unity、xubuntu。
自定义 Linux guest:也可自行下载 Linux 镜像并手工创建 VM 配置(例如debian-bullseye.conf):
guest_os="linux" disk_img="debian-bullseye/disk.qcow2" iso="debian-bullseye/firmware-11.0.0-amd64-DVD-1.iso"然后启动并按常规完成安装,再安装spice-vdagent与spice-webdavd。
支持老版本 Linux 发行版:如果要运行 2016 年或更早的旧 Linux,把guest_os改为linux_old,这会启用vmware-svga显卡驱动——旧发行版对它的支持更好。
其他受支持系统(quickget的完整 OS 列表):alma、alpine、android、antix、archcraft、archlinux、artixlinux、azurelinux、batocera、bazzite、biglinux、blendos、bodhi、bunsenlabs、cachyos、centos-stream、chimeralinux、crunchbang++、debian、deepin、devuan、dragonflybsd、easyos、elementary、endeavouros、endless、fedora、freebsd、freedos、garuda、gentoo、ghostbsd、gnomeos、guix、haiku、kali、kdeneon、kolibrios、linuxlite、linuxmint、lmde、maboxlinux、mageia、manjaro、mxlinux、netboot、netbsd、nitrux、nixos、nwg-shell、openbsd、openindiana、opensuse、oraclelinux、parrotsec、pclinuxos、peppermint、popos、porteus、primtux、proxmox-ve、pureos、reactos、rebornos、rockylinux、siduction、slackware、slax、slint、slitaz、solus、sparkylinux、spirallinux、tails、tinycore、trisquel、tuxedo-os、vanillaos、void、zorin。
macOS guest
macOS 在虚拟机中的安装可能比较"挑剔",遇到问题建议查阅项目 Discussions 中的解决方案或寻求帮助。
quickget会自动下载 macOS 恢复镜像并创建 VM 配置。支持mojave、catalina、big-sur、monterey、ventura与sonoma:
quickget macos big-sur quickemu --vm macos-big-sur.conf安装步骤:
- 用方向键和回车键选择macOS Base System;
- 在macOS Utilities中点击Disk Utility并Continue:
- 从列表中选择
QEMU HARDDISK Media(约 103.08GB;Big Sur 及更新版本选择Apple Inc. VirtIO Block Device),点击Erase; - 输入磁盘
Name:; - 安装 Mojave 或更新版本(Catalina、Big Sur、Monterey、Ventura、Sonoma)时选择任意 APFS 文件系统选项(MacOS Extended 可能无法工作);
- 点击Erase→Done→ 关闭 Disk Utility;
- 从列表中选择
- 在macOS Utilities中点击Reinstall macOS并Continue,按常规完成安装:
- 首次重启时选择macOS Installer;
- 后续重启时选择你命名的磁盘;
- 安装完成后进入首次启动向导,配置选项并设置用户名与密码。
(可选)启用 TRIM:安装完成后,在终端执行以下命令让 macOS 在删除文件时对磁盘下发 TRIM 命令,从而使 Quickemu 能在删除文件后压缩(缩小)macOS 磁盘镜像;否则磁盘镜像只会不断增大:
sudo trimforce enable系统会要求输入密码,随后两次询问均输入y并回车确认(直接回车视为"否"):
IMPORTANT NOTICE: This tool force-enables TRIM for all relevant attached devices, ... Are you sure you with to proceed (y/N)?Your system will immediately reboot when this is complete. Is this OK (y/N)?命令完成后系统会自动重启。
macOS 兼容性要点
- 支持版本:Mojave、Catalina、Big Sur、Monterey、Ventura、Sonoma;
quickemu会自动从 OSX-KVM 下载所需的 OpenCore 引导加载器与 OVMF 固件;- 默认已优化,但没有 GPU 加速;
- 自动检测宿主 CPU 厂商并相应优化 guest CPU;
- 系统磁盘在支持时使用 VirtIO 块设备;
- 鼠标使用 VirtIO
usb-tablet; - Big Sur 及更新版本启用 VirtIO 网络(
virtio-net),早期版本使用vmxnet3; - Big Sur 及更新版本启用 VirtIO 内存气球,其他版本禁用;
- USB 宿主与 SPICE 直通:Catalina 及更早使用 UHCI(USB 2.0),Big Sur 及更新使用 XHCI(USB 3.0);
- 显示分辨率可通过
--width与--height命令行参数修改; - 全双工音频需要 VoodooHDA OC 或直通 USB 音频设备(安装 VoodooHDA OC 前需禁用 Gatekeeper 与 SIP);
- 文件共享可通过 virtio-9p 与 SPICE webdavd 实现;
- macOS 上无法通过 SPICE agent 实现复制/粘贴。
macOS App Store 登录问题
如果登录 App Store 时提示"Your device or computer could not be verified",请用ifconfig确认有线以太网设备是en0。若不是,到系统偏好设置 → 网络删除所有网络设备并应用更改,然后在终端执行:
sudo rm /Library/Preferences/SystemConfiguration/NetworkInterfaces.plist重启后 App Store 即可正常工作。
Windows guest
quickget可自动下载Windows 10与Windows 11并创建优化配置,配置中已包含 VirtIO 驱动 for Windows。Windows 8.1也受支持,但没有自动安装或驱动优化。quickget还可下载Windows 10 LTSC与 Windows Server2012-r2 / 2016 / 2019 / 2022(这些版本不支持自动安装):
quickget windows 11 quickemu --vm windows-11.conf- 按常规完成安装;
- 相关驱动与服务会自动安装;
- 会自动创建本地管理员账号,凭据为:
- 用户名:
Quickemu - 密码:
quickemu
- 用户名:
quickget 高级用法
quickget的完整参数:
--arch <arch> : Set architecture (arm64, aarch64, amd64, x86_64) --download <os> <release> [edition] : Download image; no VM configuration --create-config <os> [path/url] [flags] : Create VM config for an OS image --open-homepage <os> : Open homepage for the OS --show [os] : Show OS information --version : Show version --help : Show this help message ------------------------------------ Flags ------------------------------------- --create-config: --disable-unattended : Force quickget not to set up an unattended installation -------------------------- For testing & development --------------------------- --url [os] [release] [edition] : Show image URL(s) --check [os] [release] [edition] : Check image URL(s) --check-all-arch [os] [release] [edition] : Check downloads for all architectures (amd64 and arm64) --list : List all supported systems --list-csv : List everything in csv format --list-json : List everything in json format典型用法:
# 显示 {os} {release} [edition] 的 ISO 下载 URL quickget --url fedora 38 Silverblue # 测试某 OS ISO 是否可用 quickget --check nixos unstable plasma5 # 在浏览器中打开某发行版主页 quickget --open-homepage ubuntu-mate # 只把镜像下载到当前目录,不创建 VM quickget --download elementary 7.1--url、--check、--download对所有操作系统(包括 Windows 与 macOS)都完整可用。
--arch支持arm64/aarch64(归一化为 arm64)与amd64/x86_64(归一化为 amd64),可在其他参数前或--download后使用(quickget)。--create-config接受本地路径或 HTTP(S) URL,支持 ISO、IMG 与 QCOW2 文件,会自动按文件名识别 guest 类型(windows/windows-server/freebsd/reactos 等),并为 Windows 10/11 下载 VirtIO 驱动并生成无人值守安装文件(可通过--disable-unattended关闭),实现见 quickget 的create_config。
桌面快捷方式与快照管理
为某台 VM 创建桌面快捷方式(保存到~/.local/share/applications):
quickemu --vm ubuntu-22.04-desktop.conf --shortcut快照管理通过--snapshot子命令完成:
quickemu --vm ubuntu.conf --snapshot create 2026-01-01 # 创建快照 quickemu --vm ubuntu.conf --snapshot apply 2026-01-01 # 恢复快照 quickemu --vm ubuntu.conf --snapshot delete 2026-01-01 # 删除快照 quickemu --vm ubuntu.conf --snapshot info # 查看磁盘/快照信息--status-quo可让本次运行不向磁盘提交任何更改(对应 QEMU 的-snapshot模式),适合临时试用。SSH 端口默认从 22220 起自动寻找空闲端口(get_port函数,见 quickemu),并自动追加hostfwd=tcp::<port>-:22转发到 guest 的 22 端口,启动后终端会打印ssh user@localhost -p <port>的连接提示。
小结
Quickemu 的价值在于把 QEMU 的"正确配置"沉淀成了两个简单命令:quickget负责"找镜像、生成配置",quickemu负责"按硬件自动优化并启动"。本文覆盖了从依赖安装、两步快速启动、完整命令行参数、VM 配置文件的全部选项,到 Linux / macOS / Windows 三类 guest 的实战安装、文件共享、网络、USB 直通与 TPM 的配置方法。更完整的细节可继续查阅仓库内的 quickemu.1、quickget.1 与 quickemu_conf.5 三份手册,以及 quickemu、quickget 两个脚本源码。
【免费下载链接】quickemuQuickly create and run optimised Windows, macOS and Linux virtual machines项目地址: https://gitcode.com/GitHub_Trending/qu/quickemu
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考