使用 Quickemu 運行 Linux、macOS 和 Windows 虛擬機


在本指南中 快速查看 如何創建和 使用 Quickemu 運行 Linux、macOS 和 Windows 桌面虛擬機 在 Linux 上。

內容

  1. 什麼是快木?
  2. 快遞功能
  3. 在 Linux 上安裝 Quickemu
  4. 使用 Quickemu 運行 Linux、MacOS 和 Windows 虛擬機
  5. 從主機通過終端訪問虛擬機
  6. 創建具有自定義規格(CPU 內核、磁盤、內存)的 VM
  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)和傳統 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 及其變體,例如 EndeavorOS、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 的最新映像創建 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。

例如,如果在 VM 的 22220 端口上配置了 SSH 服務,則可以從主機系統訪問 VM,如下所示。

$ ssh -P 22220 [email protected]

我可以查一下嗎 .ports 查看 VM 目錄中的文件以查找 VM 連接到的 SSH 和 SPICE 端口。

$ cat alpine-latest/alpine-latest.ports 
ssh,22220
spice,5930

這在以無頭模式啟動 VM 時很有用。

創建具有自定義規格(CPU 內核、磁盤、內存)的 VM

默認情況下,Quickemu 會根據主機的規格分配 CPU 內核數以及磁盤和 RAM 大小。可以使用以下參數覆蓋此默認行為:

  • cpu_cores="2" – 指定要分配給 VM 的 CPU 內核數(例如,2 個內核)。
  • ram="4G" – 指定要分配給 VM 的 RAM 量(例如,4 GB)。
  • disk_size="20G" – 指定要分配給 VM 的磁盤大小(例如 20 GB)。

編輯 VM 配置文件以創建具有 2 個 CPU 內核、4 GB RAM 和 20 GB 硬盤的 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 菜單條目。現在您可以從儀表板或菜單啟動 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 使用存儲在“下載”目錄中的 ISO 文件。

以無頭模式啟動 VM

一定 辛辣的 客戶端將被安裝。

運行以下命令以使用 SPICE 啟動 VM,但不附加顯示。

$ quickemu --vm alpine-latest.conf --display none

虛擬機以無頭模式啟動,因此只能通過 SSH 訪問。

假設在虛擬機的 22220 端口上配置了 SSH 服務,您可以從主機系統訪問虛擬機,如下所示。

$ 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,請參見此處 奎吉1 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 管理開源 qemuQuickemuQuickgetSysadminVirtual MachineVirtualization