使用 Quickemu 运行 Linux、macOS、Windows 虚拟机

本指南解释了什么是 快目 以及如何创建和 使用 Quickemu 运行 Linux、macOS 和 Windows 桌面虚拟机 在 Linux 中。

内容

  1. 什么是快木?
  2. 快车特点
  3. 在 Linux 中安装 Quickemu
  4. 使用 Quickemu 运行 Linux、MacOS 和 Windows 虚拟机
  5. 通过终端从主机访问虚拟机
  6. 创建具有自定义规格的 VM(CPU 内核、磁盘和内存)
  7. 为虚拟机创建桌面快捷方式
  8. 使用 SPICE 客户端启动 VM
  9. 使用现有 ISO 映像
  10. 以无头模式启动 VM
  11. 配置网络
  12. 删除虚拟机
  13. Quickgui – Quickemu 的图形前端
  14. 显示帮助
  15. 结论

什么是快木?

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
使用 Quickget 下载 Alpine Linux ISO 映像

现在使用命令启动您的 Alpine Linux 虚拟机:

$ quickemu --vm alpine-latest.conf

此命令将通过 Spicy GTK 客户端创建和启动 Alpine Linux 虚拟机。

使用 Quickemu 运行 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"
使用 Quickemu 创建自定义配置 VM

现在,使用更新的配置文件启动 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虚拟机虚拟化