趙健的技術筆記

EndeavourOS、Manjaro等Arch系Linux安裝QEMU+KVM、libvirt、Virt-Manager虛擬機

技術 約 2290 字 · 6 分鐘 - 次閱讀

QEMU、KVM、libvirt 和 Virt-Manager 是構建虛擬化解決方案的關鍵組件,它們各自承擔不同的角色,但相互協作以提供強大的虛擬化功能。

QEMU 是一個開源的通用硬體模擬器和虛擬機管理器。既可以作為純模擬器運行(效能較低),也可以結合 KVM 提供硬體加速的虛擬化(效能較高,媲美裸機)。

KVM 是 Linux 核心中的一個模組,直接運行在 Linux 核心上,藉助硬體虛擬化技術,可達到接近原生硬體的效能。

libvirt 是一個開源的 API 和工具集,用於管理虛擬化平台(如 QEMU/KVM、Xen、VMware、Hyper-V 等)。

Virt-Manager 是一個基於圖形介面的管理工具,本身並不直接管理虛擬機,專門用於管理 libvirt 提供的虛擬機。主要面向不熟悉命令列的使用者,提供方便的圖形化介面。

KVM Linux 核心自帶,與 QEMU 整合後實現高效能的虛擬化。libvirt 簡化了 QEMU 的複雜性,提供了命令列操作的管理功能,是虛擬化管理的核心工具。Virt-Manager 是 libvirt 的圖形介面,適合需要GUI圖形化介面的使用者更便捷的管理虛擬機。

安裝虛擬機運行所需要的組件

yay -S qemu virt-manager virt-viewer dnsmasq vde2 bridge-utils openbsd-netcat ebtables swtpm
sudo systemctl enable libvirtd.service
sudo systemctl start libvirtd.service
sudo usermod -aG libvirt $USER
  1. qemu是一個通用且開源的虛擬機和模擬器。它允許您在一個作業系統中運行其他作業系統,支援完整的系統虛擬化和程序仿真。

  2. virt-manager是一個圖形化的虛擬機管理工具,簡化了虛擬機的建立、管理和監控。

  3. virt-viewer是一個輕量級的遠端查看工具,允許連接到虛擬機的圖形控制台(透過 SPICE 或 VNC 協定)。

  4. dnsmasq是一個輕量級的 DNS 和 DHCP 伺服器。Libvirt 使用它為虛擬機提供 NAT 網路連接(預設設定)。

  5. vde2是一個虛擬交換機,用於建立虛擬網路環境。可選工具,主要用於進階虛擬網路配置,適合需要複雜網路拓撲的使用者。

  6. bridge-utils提供了橋接網路的管理工具,用於將虛擬機的網路介面橋接到實體網路介面。如果您需要虛擬機直接存取外部網路(橋接模式),這是必需的。

  7. openbsd-netcat是一個用於網路除錯和資料傳輸的工具,支援 TCP 和 UDP 協定。Libvirt 使用它進行一些網路相關的任務(例如,遠端主機之間的資料傳輸)。

  8. ebtables是一個使用者空間工具,用於管理 Linux 核心的網橋過濾表。在橋接網路中,管理虛擬機的網路流量規則時需要使用。

  9. swtpm是一個軟體模擬的 TPM,允許虛擬機使用 TPM 功能而不需要實體硬體支援。支援 Windows 11 或其他需要 TPM 的應用場景。

在QEMU、virt-manager下實現剪貼簿共享、檔案拖放功能

yay -S spice-vdagent qemu-guest-agent
sudo pacman -S spice-vdagent qemu-guest-agent
  1. spice-vdagent 主要用於增強使用者體驗,提供剪貼簿共享、檔案拖放等功能。
  2. qemu-guest-agent 則提供虛擬機與宿主機之間的管理和通訊能力,允許虛擬機執行更高效的操作和管理任務。

安裝完畢後,需在 virt-manager (Linux宿主機端)設定 虛擬機

  1. 顯示協定 Spice Spice 伺服器 - 類型:Spice 伺服器

顯示協定 Spice

  1. 新增硬體(兩個): 通道:名稱選擇 com.redhat.spice.0 通道:名稱選擇 org.qemu.guest_agent.0

新增硬體 通道 com.redhat.spice.0

新增硬體 通道 org.qemu.guest_agent.0

在虛擬機內(客戶機、所安裝的虛擬機系統)安裝Spice Guest Tools軟體,實現剪貼簿共享、檔案拖曳等功能的支援。

如運行時出現「啟動網域時出錯: 所需操作無效:網路 ‘default’ 未啟用」,需啟動 default 網路。

啟動 default 網路

sudo virsh net-start default

設定開機自動啟動

sudo virsh net-autostart default
分享:

評論