Quickemu快速创建KVM虚拟机
简介
Quickemu 是一个优秀的 QEMU 的封装器,它在创建虚拟机时自动“做到正确的事情”。无需繁琐的配置选项。你只需决定想要运行哪个操作系统,Quickemu 会处理其余的工作 🤖
- quickget 会自动下载上游操作系统并创建配置 📀
- quickemu 会枚举你的硬件,并以最适合你计算机的最佳配置启动虚拟机 ⚡️
该项目的最初目标是实现对 Linux 发行版的快速测试,虚拟机及其配置可以存储在任何地方(如外部 USB 存储或你的 home 目录),并且运行虚拟机不需要提升权限。
如今,Quickemu 包括对 macOS、Windows、大多数 BSD 以及一些新颖的非 Linux 操作系统(如 FreeDOS、Haiku、KolibriOS、OpenIndiana、ReactOS 等)的全面支持。
安装
yay -S qemu-full quickemu
其它操作系统
01 Installation
quickget 工具是 Quickemu 的一部分,其目的是自动下载操作系统镜像并创建优化的虚拟机配置。
运行 quickget -h 将生成它所支持的所有操作系统的列表,包括数百种 Linux 发行版、所有 BSD、macOS、Windows、FreeDOS 以及许多其他操作系统。
创建虚拟机
Ubuntu
# 下载镜像并创建配置,保存位置为命令的目录
# 如下会下载镜像保存于 ./ubuntu-22.04 并创建配置 ./ubuntu-22.04.conf
quickget ubuntu 22.04
quickemu --vm ubuntu-22.04.conf # 启动 ubuntu-22.04
在客户机中安装 SPICE 代理(spice-vdagent
)以启用 复制/粘贴和 USB 重定向
sudo apt install spice-vdagent
在客户机中安装 SPICE WebDAV 代理 (spice-webdavd
) 以 启用文件共享。
sudo apt install spice-webdavd
quickget macos ventura
quickemu --vm macos-ventura.conf
quickget windows 10 "Chinese (Simplified)"
quickemu --vm windows-10-Chinese-Simplified.conf
可通过如下命令获取所有可用虚拟机列表
quickget --list
配置
默认的 Windows 11 配置如下:
./windows-11-Chinese-Simplified.conf
guest_os="windows"
disk_img="windows-11/disk.qcow2"
iso="windows-11/windows-11.iso"
fixed_iso="windows-11/virtio-win.iso"
tpm="on"
secureboot="off"
各配置项说明
boot="legacy"
- efi 是默认的,该配置选项启用传统 BIOS
cpu_cores="4"
- 指定分配给虚拟机的 CPU 核心数量
ram="4G"
- 指定分配给虚拟机的 RAM 数量
disk_size="16G"
- 指定分配给虚拟机的虚拟磁盘大小
preallocation="metadata"
- 预分配模式(允许值:off(默认),
metadata,falloc
,full
)
fixed_iso="/path/to/image.iso"
- 将 ISO 镜像从主机挂载到给客户机
width
和height
- 虚拟机分辨率,默认分辨率为 1280 x 800
,要在 macOS 上设置显示分辨率,您还需要在 macOS 虚拟机中安装第三方分辨率管理器以获得最佳效果,建议使用以下之一:
- Resolutionator · Many Tricks
- SwitchResX
- BetterDisplay
network="none"
- 禁用客户虚拟机中的所有网络接口
network="restrict"
- 将来宾与主机(以及更广泛的网络)隔离,这将限制网络仅限于来宾和任何虚拟设备
network="br0"
- 将虚拟机连接到预配置的网络桥
macaddr="52:54:00:AB:51:AE"
- 为桥接网络接口设置一个持久的 MAC 地址,QEMU 要求 MAC 地址在以下范围内:52:54:00:AB:00:00 - 52:54:00:AB:FF:FF
port_forwards=("8123:8123" "8888:80")
- 主机上的 8123 端口被转发到客户机上的 8123 端口,主机上的 8888 端口被转发到客机的 80 端口
display="spice"
- 使用 SPICE 协议,在游客和主机之间复制/粘贴,与客户端共享主机文件,USB 设备重定向。这需要安装 spicy
客户端,该客户端可以从 Debian/Ubuntu 的 spice-client-gtk
包中获取。要在 Windows 客户端中启用复制/粘贴,请在客户机虚拟机中安装 SPICE Windows 客户端工具。通过 SPICE 代理复制/粘贴在 macOS 上不可用。
命令参数
使用方法
quickemu --vm ubuntu.conf <参数>
参数
--access : 启用远程 Spice 访问支持。'local'(默认)、'remote'、'clientipaddress'
--braille : 启用盲文支持。需要 SDL。
--delete-disk : 删除磁盘映像和 EFI 变量
--delete-vm : 删除整个虚拟机及其配置
--display : 选择显示后端。'sdl'(默认)、'cocoa'、'gtk'、'none'、'spice' 或 'spice-app'
--fullscreen : 以全屏模式启动虚拟机(按 Ctrl+Alt+f 退出)
--ignore-msrs-always : 配置 KVM 始终忽略未处理的特定于机器的寄存器
--kill : 如果虚拟机正在运行,则终止其进程
--offline : 覆盖所有网络设置并离线启动虚拟机
--shortcut : 创建桌面快捷方式
--snapshot apply <tag> : 应用/恢复快照。
--snapshot create <tag> : 创建快照。
--snapshot delete <tag> : 删除快照。
--snapshot info : 显示磁盘/快照信息。
--status-quo : 不对磁盘/快照进行任何更改。
--viewer <viewer> : 选择替代查看器。可选项:'spicy'(默认)、'remote-viewer'、'none'
--width <width> : 设置虚拟机屏幕宽度;需要 '--height'
--height <height> : 设置虚拟机屏幕高度;需要 '--width'
--ssh-port <port> : 手动设置 SSH 端口
--spice-port <port> : 手动设置 SPICE 端口
--public-dir <path> : 公开共享目录。可选项:''(默认:xdg-user-dir PUBLICSHARE)、'<directory>'、'none'
--monitor <type> : 设置监视器连接类型。可选项:'socket'(默认)、'telnet'、'none'
--monitor-telnet-host <ip/host> : 设置监视器的 telnet 主机。(默认:'localhost')
--monitor-telnet-port <port> : 设置监视器的 telnet 端口。(默认:'4440')
--monitor-cmd <cmd> : 如果可用,向监视器发送命令。(示例: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'、'none'
--sound-duplex <type> : 设置声卡双工。可选项:'hda-micro'(默认:扬声器/麦克风)、'hda-duplex'(线路输入/线路输出)、'hda-output'(仅输出)
--extra_args <arguments> : 传递额外参数给 qemu
--version : 打印版本