本指南解释了什么是 快目 以及如何创建和 使用 Quickemu 运行 Linux、macOS 和 Windows 桌面虚拟机 在 Linux 中。
内容
什么是快木?
Quickemu 是一个命令行程序,用于快速创建和运行优化的 Linux、macOS 和 Windows 桌面虚拟机。
你不需要 sudo 或 root 权限来运行虚拟机。 您可以作为普通用户简单地测试任何 Linux、macOS 或 Windows 虚拟机,并将虚拟机配置存储在您的 HOME 目录或 USB 磁盘中。
Quickemu 应用程序由两个 CLI 工具组成,即 快目 和 快速获取.
quickget CLI 工具会为您的操作系统下载最新的 ISO 映像。 默认情况下,下载的图像保存在您的 HOME 目录中。 您可以将其更改为其他位置,例如外部 USB 驱动器。
而且,Quickemu CLI 工具使用 QEMU 在后台创建和管理虚拟机。 因此,虚拟机经过高度优化,无需任何额外配置即可开箱即用。
快车特点
Quickemu 提供了许多开箱即用的功能。
- 支持超过 300 种操作系统。
- 支持 EFI(带或不带 SecureBoot)和 Legacy BIOS 引导。
- 主机/来宾剪贴板共享的完整 SPICE 支持。
- 使用 VirtIO-webdavd 为 Linux 和 Windows 来宾启用文件共享。
- 使用 VirtIO-9p 为 Linux 和 macOS 来宾启用文件共享。
- 启用 Linux、macOS 和 Windows 来宾之间的 Samba 文件共享。
- 为访客配置自动 SSH 端口转发。
- 网络端口转发。
- 全双工音频支持。
- 智能卡、USB 设备直通。
- VirGL 加速。
- 盲文支持。
- 免费和开源。
在 Linux 中安装 Quickemu
在安装 Quickemu 之前, 确保您的系统处理器支持硬件虚拟化(VT-X). 我们在下面给出的指南中记录了几种不同的方法来确定 Linux 系统是否支持虚拟化。
如何确定 CPU 是否支持虚拟化技术 (VT)
如果您的系统支持硬件虚拟化,请继续以下步骤。
Quickemu 是一个新项目,目前仅针对少数操作系统打包。
Arch Linux:
Quickemu 可用于 金子. 如果您使用的是 Arch Linux 及其变体,例如 EndeavourOS、Manjaro Linux,您可以使用安装 Quickemu 肺 或者 耶 帮手。
$ paru -S quickemu
或者,
$ yay -S quickemu
尼克斯操作系统:
要在 NixOS 中安装 Quickemu,请运行:
$ nix-env -i quickemu
Ubuntu:
Quickemu 的开发人员为 Ubuntu 及其衍生产品(如 Elementary OS、Linux Mint 和 Pop!_OS)创建了专用 PPA。
要在 Ubuntu 及其衍生版本中安装 Quickemu,请一一运行以下命令。
$ sudo apt-add-repository ppa:flexiondotorg/quickemu
$ sudo apt update
$ sudo apt install quickemu
对于其他 Linux 发行版,请参阅最后给出的项目的 GitHub 存储库。
使用 Quickemu 运行 Linux、MacOS 和 Windows 虚拟机
使用 Quickemu 创建和管理虚拟机只是两个步骤。
使用 quickget CLI 下载操作系统映像,例如 Alpine Linux:
$ quickget alpine latest
您还可以下载特定版本的 Alpine,如下所示:
$ quickget alpine 3.15
它将为所选操作系统创建一个配置文件。 它将根据所选操作系统命名。
alpine-latest/alpin 100%[===================>] 47.00M 3.52MB/s in 14s Checking alpine-latest/alpine-virt-3.16.0-x86_64.iso with sha256sum... Good! Making alpine-latest.conf To start your Alpine Linux virtual machine run: quickemu --vm alpine-latest.conf
现在使用命令启动您的 Alpine Linux 虚拟机:
$ quickemu --vm alpine-latest.conf
此命令将通过 Spicy GTK 客户端创建和启动 Alpine Linux 虚拟机。
请注意,它只是一个实时系统。 您仍然需要安装操作系统。 您现在可以像往常一样开始安装 Alpine OS。
每个 VM 及其相关文件(ISO、Qcow2、其他配置文件)都存储在 HOME 目录中的单独目录中。 例如,如果您使用 Alpine latest 映像创建 Alpine VM,则会创建一个名为“alpine-latest”的新目录,并将 VM 的相关文件保存在此目录中。
$ ls alpine-latest alpine-latest-agent.sock alpine-latest.pid alpine-latest.sh disk.qcow2 alpine-latest.log alpine-latest.ports alpine-virt-3.16.0-x86_64.iso OVMF_VARS.fd
正如您在上面的输出中看到的,我的 Alpine Linux VM 的 ISO 文件、Qcow2 磁盘文件和其他配置文件,例如 .ports
, .fd
, .sock
等等,都保存在里面 ~/alpine-latest
目录。
通过终端从主机访问虚拟机
每当您启动 VM 时,Quickemu 都会在您的主机系统终端上显示以下有用信息。
Quickemu 3.15 using /usr/bin/qemu-system-x86_64 v6.2.0 - Host: Ubuntu 22.04 LTS running Linux 5.15 (ubuntu2204) - CPU: 11th Gen Intel(R) Core(TM) i3-1115G4 @ 3.00GHz - CPU VM: 1 Socket(s), 1 Core(s), 1 Thread(s), 4G RAM - BOOT: EFI (Linux), OVMF (/usr/share/OVMF/OVMF_CODE_4M.fd), SecureBoot (off). - Disk: alpine-latest/disk.qcow2 (16G) Looks unused, booting from alpine-latest/alpine-virt-3.16.0-x86_64.iso - Boot ISO: alpine-latest/alpine-virt-3.16.0-x86_64.iso - Display: SPICE, qxl-vga, GL (on), VirGL (off) - ssh: On host: ssh [email protected] -p 22220 - SPICE: On host: spicy --title "alpine-latest" --port 5930 --spice-shared-dir /home/ostechnix/Public - WebDAV: On guest: dav://localhost:9843/ - 9P: On guest: sudo mount -t 9p -o trans=virtio,version=9p2000.L,msize=104857600 Public-ostechnix ~/Public - Process: Starting alpine-latest.conf as alpine-latest (11272)
如您所见,它显示了主机和 VM 的配置详细信息,包括其他详细信息,例如如何通过 SSH 访问 VM、通过 SPICE 客户端访问共享文件夹等。您可以使用这些详细信息从主机系统访问 VM .
例如,如果 SSH 服务在您的 VM 中配置了端口 22220,您可以从您的主机系统访问该 VM,如下所示。
$ ssh -P 22220 [email protected]
你可以检查 .ports
VM 目录中的文件以查找 VM 连接到的 SSH 和 SPICE 端口。
$ cat alpine-latest/alpine-latest.ports ssh,22220 spice,5930
当您想以无头模式启动 VM 时,这可能很有用。
创建具有自定义规格的 VM(CPU 内核、磁盘和内存)
默认情况下,Quickemu 将根据您的主机规格分配 CPU 核心数以及磁盘和 RAM 的大小。 您可以使用以下参数覆盖此默认行为。
cpu_cores="2"
– 指定分配给 VM 的 CPU 内核数(例如 2 个内核)。ram="4G"
– 指定要分配给 VM 的 RAM 容量(例如 4 GB)。disk_size="20G"
– 指定要分配给 VM 的磁盘大小(例如 20 GB)。
要创建具有 2 个 CPU 内核、4 GB RAM 和 20 GB 硬盘的 VM,请编辑您的 VM 配置文件:
$ nano alpine-latest.conf
添加以下行:
cpu_cores="2" ram="4G" disk_size="20G"
现在,使用更新的配置文件启动 VM:
$ quickemu --vm alpine-latest.conf
为虚拟机创建桌面快捷方式
您可以为您的 VM 创建一个桌面快捷方式,而不是输入整个命令,如下所示。
$ quickemu --vm alpine-latest.conf --shortcut
此命令将为 Alpine VM 创建快捷方式 ~/.local/share/applications/
地点。
$ ls ~/.local/share/applications/ alpine-latest.desktop
还为 VM 创建了 VM 的菜单条目。 从现在开始,您可以从 Dash 或菜单启动 VM。
使用 SPICE 客户端启动 VM
使用 SPICE 协议启动 VM 将为您带来以下好处。
- 在主人和客人之间共享剪贴板。
- 在主机和来宾之间共享文件。
- 启用 USB 直通。
确保 spicy
客户端已安装并运行以下命令
$ quickemu --vm alpine-latest.conf --display spice
使用现有 ISO 映像
有时,您可能已经下载了 ISO 文件。 在这种情况下,您不需要使用“quickget”命令来下载 ISO 文件。 相反,只需编辑您的 VM 配置文件:
$ nano alpine-latest.conf
更新正确的 ISO 文件路径g(例如 /home/ostechnix/Downloads/),如下所示:
[...] iso="/home/ostechnix/Downloads/alpine-virt-3.16.0-x86_64.iso"
现在 Quickemu 将使用保存在“Downloads”目录中的 ISO 文件。
以无头模式启动 VM
确保 辛辣的 客户端已安装。
运行以下命令以使用 SPICE 启动 VM,但没有附加显示:
$ quickemu --vm alpine-latest.conf --display none
由于虚拟机以无头模式启动,因此您只能通过 SSH 访问它。
假设 SSH 服务在您的虚拟机中配置了端口 22220,您可以从主机系统访问虚拟机,如下所示。
$ ssh -P 22220 [email protected]
你可以检查 .ports
VM 目录中的文件以查找 VM 连接到的 SSH 和 SPICE 端口。
$ cat alpine-latest/alpine-latest.ports ssh,22220 spice,5930
配置网络
启用桥接网络
要允许您的 VM 连接到预配置的网桥,请将以下行添加到 VM 配置中:
bridge="br0"
转发端口
要允许端口转发,请将以下行添加到 VM 配置:
port_forwards=("22:2200" "8800:80"
这里,
- 22:2200 – 您的主机系统上的端口 22 被转发到您的访客系统上的端口 2200。
- 8800:80 – 您的主机系统上的端口 8800 被转发到您的访客系统上的端口 80。
Quickemu 允许您进行其他一些自定义。 有关更多详细信息,请参阅最后给出的项目的 GitHub 页面。
删除虚拟机
如果不再需要 VM,您可以使用以下命令删除它:
$ quickemu --vm alpine-latest.conf --delete-vm
此命令将整个虚拟机及其配置。
Quickgui – Quickemu 的图形前端
Quickemu 和 quickget 是命令行程序。 不是每个人都喜欢命令行模式。 对于那些更喜欢 GUI 而不是 CLI 的人,看看 快桂, 一个 Quickemu 用于创建、运行和管理虚拟机的图形前端. 有关详细信息,请参阅以下指南。
Quickgui – Quickemu 创建和运行虚拟机的 GUI
显示帮助
要查看 Quickemu 帮助,请运行:
$ quickemu --help Usage quickemu --vm ubuntu.conf You can also pass optional parameters --braille : Enable braille support. Requires SDL. --delete-disk : Delete the disk image and EFI variables --delete-vm : Delete the entire VM and it's configuration --display : Select display backend. 'sdl' (default), 'gtk', 'none', or 'spice' --fullscreen : Starts VM in full screen mode (Ctl+Alt+f to exit) --ignore-msrs-always : Configure KVM to always ignore unhandled machine-specific registers --screen <screen> : Use specified screen to determine the window size. --shortcut : Create a desktop shortcut --snapshot apply <tag> : Apply/restore a snapshot. --snapshot create <tag> : Create a snapshot. --snapshot delete <tag> : Delete a snapshot. --snapshot info : Show disk/snapshot info. --status-quo : Do not commit any changes to disk/snapshot. --version : Print version
结论
Quickemu 提供了一种快速部署和运行 Windows、macOS 和 Linux 桌面虚拟机的简单方法。
Quickemu 的一个显着特点是,我们可以使用 Quickget CLI 直接下载 ISO 映像。 我不认为其他虚拟化应用程序和管理程序中是否包含此功能。
Quickemu 的使用也非常简单! 如果您正在寻找一种简单的方法来运行适用于 Linux、macOS 和 Windows 的优化虚拟机,那么 Quickemu 是完美的选择!
资源:
- Quickemu GitHub存储库
CLILinuxLinux管理开源qemuQuickemuQuickgetSysadmin虚拟机虚拟化