Quickemu 虚拟机配置指南:深入解析 quickemu_conf 全部选项与实战调优
发布时间:2026/9/14 20:35:19 锦皓数字建站

Quickemu 虚拟机配置指南深入解析 quickemu_conf 全部选项与实战调优【免费下载链接】quickemuQuickly create and run optimised Windows, macOS and Linux virtual machines项目地址: https://gitcode.com/GitHub_Trending/qu/quickemu导读vm.conf是 Quickemu 虚拟机的灵魂配置文件它决定了每一台虚拟机如何被创建、优化和启动。本文以 Quickemu 官方配置手册 docs/quickemu_conf.5.md 为骨架结合 quickemu 主脚本源码约 2900 行 Bash深入展开系统讲解全部配置项的含义、默认值、作用范围与底层实现原理。读完本文你将能够从零编写一份完整可用的虚拟机配置精确控制启动固件、CPU 与内存、磁盘预分配、CD-ROM/软盘挂载、文件共享、四种网络模式、USB 重定向、TPM 与串口/监视器等高级能力。配置文件是什么Quickemu 通过命令行quickemu --vm vm.conf启动虚拟机其中vm.conf是必需的配置文件它至少需要指明两件事安装介质iso安装 ISO 镜像或img预装系统镜像如 macOS RecoveryImage虚拟机磁盘disk_imgQEMU 磁盘镜像路径。Quickemu 会基于主机硬件规格自动计算默认的 CPU 核数与内存分配但所有行为都可以在vm.conf中覆盖。配置文件实际上是一个被 Bash 直接source的脚本见 quickemu 中VMPATH$(realpath $(dirname ${VM}))之后的加载逻辑L2818 附近因此其语法遵循 Shell 变量赋值规则guest_oslinux disk_imgdebian-bullseye/disk.qcow2 isodebian-bullseye/firmware-11.0.0-amd64-DVD-1.iso提示配置文件名中的vm会被用于命名相关的运行时文件如vm.pid、vm.ports、vm.sock因此同一目录下不同虚拟机应使用不同的配置文件名。全部配置项速查表以下配置项与默认值完整对应 quickemu_conf.5.md 手册并与 quickemu 主脚本中实际的变量初始化L2540-L2568保持一致# 小写变量仅在 VM 配置文件中使用 bootefi # efi默认或 legacy cpu_cores # 分配的 CPU 核数空表示自动计算 disk_img # VM 系统磁盘镜像路径 disk_size # 新建磁盘的大小如 16G display # 显示后端如 spice、sdl、gtk、none extra_args # 追加到 QEMU 命令行末尾的额外参数 fixed_iso # 固定挂载的 ISOCD-ROM如 virtio 驱动盘 floppy # 挂载的软盘镜像路径 guest_oslinux # linux / windows / macos / freebsd 等 img # 预装系统镜像非 ISO如 macOS RecoveryImage iso # 安装用 ISO 镜像路径 macaddr # 桥接网卡的持久 MAC 地址 macos_release # 针对特定 macOS 版本优化如 catalina、big-sur network # 空user 网络none/restrict/桥接名 port_forwards() # 端口转发数组如 (8123:8123 8888:80) preallocationoff # 磁盘预分配off / metadata / falloc / full ram # 分配的内存如 4G securebootoff # 是否启用安全启动 tpmoff # 是否启用软件模拟 TPMswtpm usb_devices() # USB 主机直通设备数组如 (046d:082d) viewerspicy # 默认 SPICE 客户端 ssh_port # 宿主机 SSH 转发端口 spice_port # SPICE 连接端口 public_dir # 文件共享目录默认 ~/Public monitorsocket # QEMU monitor 类型socket / telnet / none monitor_telnet_port4440 # monitor telnet 端口 monitor_telnet_hostlocalhost # monitor telnet 主机 monitor_cmd # monitor 附加命令 serialsocket # 串口类型socket / telnet / none serial_telnet_port6660 # 串口 telnet 端口 serial_telnet_hostlocalhost # 串口 telnet 主机 # 可选值ehciUSB2.0、xhciUSB3.0 usb_controllerehci # 可选值ps2、usb、virtio keyboardusb keyboard_layouten-us # 可选值ps2、usb、tablet、virtio mousetablet其中usb_controller、keyboard、mouse等设备相关的默认值在脚本中均以${var:-default}形式兜底quickemu L2564-L2568而boot、secureboot、preallocation等则在配置加载后由主流程校验合法性。三种典型系统的完整配置模板手册针对三类最常见客户机给出了开箱即用的参考配置下面逐一拆解其含义。Linux 虚拟机guest_oslinux disk_imgdebian-bullseye/disk.qcow2 isodebian-bullseye/firmware-11.0.0-amd64-DVD-1.isoguest_oslinux会让 Quickemu 采用通用的 VirtIO 优化路径。从 quickemu L1079-L1082 的设备选择逻辑可以看到linux*客户机默认使用virtio-net-pci网卡而像batocera、haiku等小众系统则回退到兼容性更好的rtl8139。macOS 虚拟机guest_osmacos imgmacos-catalina/RecoveryImage.img disk_imgmacos-catalina/disk.qcow2 macos_releasecatalinamacOS 是 Quickemu 优化最细的客户机macos_release直接决定底层设备选型quickemu L1088-L1126Big Sur 及更新版本big-sur、monterey、ventura、sonoma、sequoia、tahoe启用 VirtIO Network、VirtIO Memory Ballooning内存气球与virtio-net-pci网卡CatalinaVirtIO Block Media磁盘已支持/稳定因此使用virtio-blk-pci但网络回退为vmxnet3更旧版本High Sierra / MojaveVirtIO 磁盘不可用回退为ide-hd,busahci.2网卡仍为vmxnet3无内存气球。也就是说macos_release选择不当可能导致磁盘或网络不可用务必与镜像版本严格对应。Windows 11 虚拟机guest_oswindows disk_imgwindows-11/disk.qcow2 isowindows-11/Win11_EnglishInternational_x64.iso fixed_isowindows-11/virtio-win.iso tpmon securebootonguest_oswindows让 Quickemu 走 Windows 优化路径virtio-net-pci网卡等fixed_iso指定提供 VirtIO 驱动的 ISO 镜像如 Fedora 的 virtio-win 驱动盘用于 Windows 无法原生识别 VirtIO 磁盘/网卡时安装驱动tpmon启用软件模拟 TPM 设备使用swtpmWindows 11 硬件要求之一securebooton启用 OVMF 安全启动。quickgetQuickemu 的配套抓取工具在生成 Windows 11 虚拟机时会自动写入上述tpmon与securebooton两行无需手工添加。启动固件EFI 与 Legacy BIOS自 Quickemu 2.1.0 起efi成为默认启动方式。如果你需要引导旧版操作系统可在配置中加入bootlegacy启动方式的选择直接决定使用哪套固件镜像efi使用 OVMF并配合secureboot决定是否加载 SecureBoot 变量而legacy则回退到传统 SeaBIOS。对应逻辑位于 quickemu L977、L1018、L1057-L1061 附近其中安全启动开关仅在 EFI 模式下生效bootlegacy时会强制securebootoff。资源调优CPU、内存与磁盘Quickemu 默认根据宿主机的 CPU 核数、内存总量自动计算分配给虚拟机的资源。你可以在配置中覆盖默认行为cpu_cores4 # 分配给 VM 的 CPU 核数 ram4G # 分配给 VM 的内存大小 disk_size16G # 新建虚拟磁盘的容量cpu_cores与ram覆盖自动探测值适合在共享宿主机上限制资源占用disk_size仅在磁盘镜像尚不存在时用于创建新镜像。若disk_img已存在Quickemu 会跳过创建流程从源码看磁盘镜像不存在时会先mkdir -p ${VMDIR}再按disk_format创建quickemu L1132-L1151。磁盘预分配Preallocationpreallocationmetadata允许取值off默认、metadata、falloc、full。其含义如下off不预分配镜像随使用逐步增长metadata仅预分配元数据初始文件较大但在镜像需要增长时性能更好falloc通过fallocate预分配空间full全量预分配镜像创建即占满disk_size。该选项只作用于新建系统磁盘。从实现看Quickemu 会先校验取值合法性非法值直接报错退出然后对不同磁盘格式拼接创建参数qcow2 使用lazy_refcountson,preallocation...,nocowonraw 使用preallocation...quickemu L1138-L1148。此外当preallocation为off时Quickemu 还会额外检查磁盘镜像是否达到最小容量要求。挂载 CD-ROM 与软盘CD-ROMISO将宿主机上的 ISO 镜像作为光驱暴露给客户机典型用途是加载 virtio 驱动盘或额外软件包fixed_iso/path/to/image.iso软盘若需要在客户机中挂载软盘镜像例如为老系统准备驱动使用floppy/path/to/floppy.img文件共享所有文件共享方式都只把当前用户的~/Public或对应本地化目录暴露给客户机这保证了共享边界的可控性。Samba 共享如果宿主机安装了smbdQuickemu 会自动启用 QEMU 内建的 Samba 共享能力无需额外配置。Ubuntu/Debian 下最小化安装 Sambasudo apt install --no-install-recommends samba一切就绪后启动虚拟机时终端会打印 smbd 的访问地址- smbd: On guest: smb://10.0.2.4/qemuWindows 客户机接入方法右键“此电脑” → “添加一个网络位置”粘贴上述地址并把smb:去掉、将正斜杠替换为反斜杠即\\10.0.2.4\qemu。从源码看Quickemu 会在用户网络栈中追加smb${PUBLIC}参数quickemu L1566-L1568同时兼容 NixOS 等/usr/sbin/smbd不在 PATH 中的发行版会额外探测/usr/sbin/smbd。SPICE WebDAV 与 VirtIO-9P 两种共享方式在手册中标记为 TBD待定读者可关注上游更新。网络配置Quickemu 的网络行为由network变量与port_forwards数组共同决定底层通过 QEMU-device/-netdev参数组装quickemu L1895-L1918。端口转发默认 user 网络下port_forwards(8123:8123 8888:80)含义宿主机8123端口 → 客户机8123宿主机8888端口 → 客户机80。实现上 Quickemu 对每个转发条目同时追加 TCP 与 UDP 的hostfwd规则quickemu L1442-L1450因此一条规则同时覆盖两种协议。完全禁用网络networknone对应-nic none客户机将没有任何网络接口。受限网络networkrestrict将客户机网络隔离在客户机自身与虚拟设备之间客户机内部有完整网络栈但无法访问宿主机或外网对应 QEMU 的restricty。典型用途是防止客户机内软件“打电话回家”。桥接网络networkbr0将虚拟机接入宿主机上预先配置好的网桥br0使客户机直接出现在局域网中。桥接模式下可使用持久 MAC 地址macaddr52:54:00:AB:51:AEQEMU 要求桥接 MAC 必须位于52:54:00:AB:00:00 - 52:54:00:AB:FF:FF区间内。若配置了macaddrQuickemu 会以mac...形式传给网桥接口quickemu L1908-L1914。USB 重定向Quickemu 支持 SPICE 透传与主机直通两种 USB 重定向方式。注意当设备被重定向到客户机后宿主机将无法再使用该设备直到重定向停止。因此绝不要重定向键盘和鼠标等输入设备否则可能无法恢复操作。SPICE 重定向推荐SPICE 方式无需任何提权操作配合 SPICE 客户端菜单即可动态选择设备以--display spice启动 Quickemuspicyspice-gtk默认菜单Input→Select USB Device for redirectionremote-viewervirt-viewer菜单File→USB device selection。为保证功能正常请在客户机内安装 SPICE Guest Tools。若在 NixOS 上遇到以下错误Error setting facl: Operation not permitted在 NixOS 配置中启用 SPICE USB 重定向选项virtualisation.spiceUSBRedirection.enable true;主机直通不推荐主机直通仅为兼容旧版 Quickemu 而保留优先使用 SPICE。配置方式为按vendor_id:product_id指定设备usb_devices(046d:082d 046d:085e)上例将罗技046d的082d与085e两个设备暴露给客户机。如果设备权限不足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 TPM 设备自 Quickemu 2.2.0 起可为客户机添加软件模拟的 TPM 设备tpmonquickget会自动为 Windows 11 虚拟机写入该行。从 configure_tpm 函数看Quickemu 会启动swtpm守护进程--ctrl typeunixio监听 Unix socket、--tpmstate dir${VMDIR}存放 TPM 状态、--tpm2使用 TPM 2.0 规范并把 socket 路径传给 QEMU 的chardev/tpmdev。若tpmon但宿主机找不到swtpm启动时会直接报错退出quickemu L2424-L2426。键盘、鼠标与 USB 控制器这三个配置项控制客户机的输入设备模型与 USB 总线版本直接影响安装体验与兼容性# 可选值ehciUSB2.0、xhciUSB3.0 usb_controllerehci # 可选值ps2、usb、virtio keyboardusb keyboard_layouten-us # 可选值ps2、usb、tablet、virtio mousetabletusb_controllerehci对应 USB 2.0xhci对应 USB 3.0。部分客户机如 Solaris 系会自动切换为xhcimousetablet使用 USB 平板绝对定位指针鼠标能精确跟随宿主机指针位置是图形安装的推荐值usb为相对定位 USB 鼠标virtio使用 VirtIO 鼠标ps2回退到传统 PS/2默认项keyboard默认usbps2/virtio为备选。注意鼠标相关设备必须在 USB 控制器之后配置源码中明确注释 must be set after usb-controller见 quickemu L1867-L1868。监视器与串口Quickemu 提供monitor与serial两个远程通道均有三种模式socketmonitor 默认Unix socket位于VMDIR下telnetTCP telnet 通道默认端口4440monitor与6660serial默认绑定localhostnone禁用。monitorsocket monitor_telnet_port4440 monitor_telnet_hostlocalhost monitor_cmd serialsocket serial_telnet_port6660 serial_telnet_hostlocalhost实现细节quickemu L2089-L2126若指定端口已被占用Quickemu 会自动探测一个空闲端口并把实际端口写入vm.ports文件每行一条记录格式如monitor-telnet,port,host端口会被校验为纯数字非法值会报错L2391-L2396serial的默认值在配置加载后按guest_os决定macOS/Windows 默认none这些系统默认不在串口输出内容禁用可减少干扰其余系统默认socketL2822-L2834。monitor_cmd可用于在启动时向 QEMU monitor 自动注入命令适合自动化场景。进阶display、viewer 与 extra_args手册中出现的其余选项同样值得关注display留空时使用默认显示后端设为spice、spice-app、sdl、gtk、none等可改变显示方式。其中spice模式下 Quickemu 会在终端打印spicy --urispiceunix://...的完整连接命令quickemu L1468none则完全关闭显示适合无头场景viewerspicy默认 SPICE 客户端可改为remote-viewerssh_port宿主机上转发到客户机 22 端口的 SSH 端口自动获取空闲端口启动后可用ssh userlocalhost -p port登录L1433-L1436spice_portSPICE TCP 监听端口远程访问场景;extra_args透传给 QEMU 的附加命令行参数为手册未覆盖的自定义需求提供了逃生通道。小结Quickemu 通过一份简洁的 Shell 配置把“创建 调优 启动”一台虚拟机压缩为一条命令而其配置文件正是全部魔法发生的地方guest_os决定设备选型策略boot/secureboot/tpm决定固件与安全特性network与port_forwards决定网络拓扑usb_devices与 SPICE 重定向决定外设接入方式preallocation决定磁盘性能与空间占用。掌握上述每个变量的含义与默认值后你完全可以脱离默认行为按需打造从 Linux 开发机到 macOS Big Sur、再到满足 Windows 11 硬件要求的完整虚拟机环境。更多运行时行为如--display、--snapshot等命令行开关可参阅 docs/quickemu.1.md 手册配套的镜像与配置生成工具见 docs/quickget.1.md。【免费下载链接】quickemuQuickly create and run optimised Windows, macOS and Linux virtual machines项目地址: https://gitcode.com/GitHub_Trending/qu/quickemu创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。