QEMU是很好用的模擬器/虛擬機軟體,可以利用Linux的KVM核心模組高效率執行虛擬機。常用的QEMU前端有紅帽公司的Virt Manager,還有配套管理工具Libvirt。
QEMU靈活性高,可以模擬異質架構,還可以設定GPU Passthrough,提升虛擬機性能。所以很適合用來跑其他Linux發行版或Windows系統。
雖然Gentoo的QEMU的FLAG很多,但常用的就x86_64和ARM64這幾個架構,依照Gentoo Wiki說明開啟必要的FLAG就好。
1. 確認電腦虛擬化與KVM支援狀況#
除Linux核心要啟用 相關功能以外,也要檢查硬體是否開啟虛擬化和載入KVM核心模組。
在BIOS中啟用CPU的虛擬化支援。
輸入以下指令查看CPU是否已開啟虛擬化,Intel應該會輸出Vt-x (vmx),AMD則是AMD-V (svm)。
sudo grep --color -E "vmx|svm" /proc/cpuinfo
- 檢查KVM核心模組是否有載入
sudo lsmod | grep kvm
- 若無,編輯
/etc/conf.d/modules
,設定開機後自動載入Intel KVM和TUN/TAP虛擬網路裝置的核心模組,接著重開機:
modules="kvm tun kvm-intel"
2. 編譯安裝QMEU#
- 用nano編輯
/etc/portage/package.use
,新增以下參數
# 因為要配合Virt Manager使用,啟用SPICE、USB重新導向。支援的架構選ARM64和x86_64。
app-emulation/qemu opengl alsa spice usbredir pulseaudio virgl sdl sdl-images QEMU_SOFTMMU_TARGETS: aarch64 x86_64 QEMU_USER_TARGETS: x86_64
- 編譯安裝QEMU
sudo emerge --ask app-emulation/qemu
- 將自己加入kvm群組
sudo gpasswd -a $USER kvm
- 如果要用QEMU安裝Windows 11,你可能還會需要軟體模擬TPM和支援Secure Boot的EDK2:
sudo USE="fuse" emerge --ask app-crypt/swtpm
sudo emerge --ask sys-firmware/edk2-ovmf
3. 編譯安裝Virt Manager#
QEMU編譯確認有啟用spice
和usbredir
這二個FLAG的話就可以接著安裝Virt Manager,內含Libvirt。
- 編譯安裝Virt Manager
sudo emerge --ask app-emulation/virt-manager
- 將自己加入libvirt群組
sudo usermod -a -G libvirt $USER
- 編輯
/etc/libvirt/libvirtd.conf
,將以下內容取消註解:
auth_unix_ro = "none"
auth_unix_rw = "none"
unix_sock_group = "libvirt"
unix_sock_ro_perms = "0777"
unix_sock_rw_perms = "0770"
- 設定開機啟動libvirtd
sudo /etc/init.d/libvirtd restart
sudo rc-update add libvirtd default
- 設定開機自動啟動虛擬機網卡
sudo virsh net-start default
sudo virsh net-autostart default
- 這樣就可以開始安裝Ubuntu或 Windows虛擬機了。Windows Guest可安裝virtio和SPICE Tools改善效能,Linux guest通常不需要額外安裝。