快轉到主要內容

【圖解】如何在Linux系統安裝Windows 11虛擬機(QEMU/KVM) + 常用技巧

Linux系統 虛擬機與容器技術 QEMU Windows Libvirt
🗓️ 民國113年 甲辰年
✍ 切換正體/簡體字
目錄

這篇文章Ivon將解說在GNU/Linux系統,用Virt Manager安裝Microsoft Windows 11系統虛擬機的過程,並解說一些常用操作技巧,讓你可以在自在的於Linux系統跑Windows VM。

執行於Linux KDE桌面的Windows 11 QEMU/KVM虛擬機
執行於Linux KDE桌面的Windows 11 QEMU/KVM虛擬機

Windows 11與 Windows 10虛擬機的安裝方式略有不同,所以Ivon單獨寫一篇解說。為了讓Windows 11的「WSA(Android子系統)」以及「WSL(Linux子系統)」在虛擬機內部正常運作,需要額外做設定。

使用的虛擬機軟體為自由開源的Virt Manager,配上QEMU/KVM。Virt Manager除了免費又高效率外,好處是即使電腦不支援TPM 2.0也可以用軟體模擬,成功安裝Windows 11,不需要破解登錄檔。

1. 確認電腦虛擬化與KVM支援狀況
#

要安裝Windows 11虛擬機,CPU需為x86_64架構,還要支援虛擬化,通常在BIOS可以啟用。

CPU不支援TPM 2.0沒關係,可以用軟體模擬。

  1. 檢查CPU是否支援虛擬化,回傳值不應為0。
sudo grep -E -c '(vmx|svm)' /proc/cpuinfo
  1. 檢查KVM核心模組是否已經載入,會看到intel_kvm或是amd_kvm出現在列表
lsmod | grep kvm

2. 安裝QEMU與Virt Manager
#

QEMU是硬體模擬器,配合KVM核心模組加速虛擬機效能。Virt Manager為一套包含Libvirt的虛擬機管理工具。

Ubuntu參考 這篇安裝

Arch Linux參考 這篇安裝

3. 新增Windows 11虛擬機組態
#

  1. Windows 11的安裝ISO可以免費在 Microsoft官網下載,不需要額外破解。

  2. 接著到 Fedora網站下載VirtIO,選virtio-stable下的ISO檔案

  3. 開啟Virt Manager,點選左上角新增虛擬機

  4. 點選手動安裝

  5. 作業系統輸入Windows 11

  6. RAM至少給8GB,CPU至少給4核心

  7. 建立至少64GB的虛擬硬碟(要玩遊戲建議256GB)。虛擬硬碟格式是qcow2,會逐漸吃滿分配的硬碟空間。

  8. 網路選取NAT,再勾選在安裝前自訂配置

  9. 將晶片組改為Q35,韌體選擇OVMF_CODE.secboot.fd。Windows 11只要UEFI支援Secure Boot即可安裝,不需要真的啟用Secure Boot。如果你想啟用真正加密請參考 這篇

  10. 點選左下角新增硬體 → 新增儲存,選取VirtIO的映像檔

  11. 切換到硬碟頁面,將類型改為VirtIO改善讀寫效能。

  12. 點選左下角新增硬體 → 新增虛擬TPM硬體,版本選擇TIS 2.0。

  13. 點選左下角新增硬體 → 新增儲存 → 裝置類型選擇CDROM,然後再選擇Windows 11的ISO

  14. 切換到開機選項,確認CDROM在第一順位。

  15. 設定就緒之後,點選左上角「開始安裝」。開機後滑鼠點一下虛擬機螢幕,按下Enter才能開機。

4. 開始安裝Windows 11虛擬機
#

  1. 點下一步

  2. 點選我沒有產品金鑰

  3. 為擁有全部Windows功能,建議安裝專業工作站版

  4. 點選自訂安裝Windows,進入選取磁碟的頁面。因為使用VirtIO,需要點選「載入驅動程式」安裝驅動

  5. 安裝Win11的VirtIO驅動程式

  6. 之後就可以安裝系統至虛擬硬碟了

  7. 安裝後Windows 11會重開機,進入初始化頁面。如果開機後還是進入安裝媒體,則自行移除CDROM硬體裝置再重新開機。

  8. 按照指示設定。進入桌面,右鍵點選開始 → 系統設定 → Windows Update,完成Windows更新。

  9. 如果您沒有購買Windows授權,請用 Microsoft Activation Scripts啟用Windows,才能使用全部系統功能。

5. 虛擬機額外技巧
#

以下步驟為選擇性,非必須。

  1. Spice Guest Tools能讓虛擬機與實體機共用剪貼簿,增進QXL虛擬顯示卡效能,Windows也會自動隨著虛擬機視窗大小縮放解析度 (虛擬機工具列→檢視→縮放檢視→自動將VM調整至與視窗大小相同)。欲安裝Spice Guest Tools,請在Windows虛擬機裡,到 官網下載Windows binaries的安裝檔。

  2. 如果想要與QEMU虛擬機共享資料夾,可考慮用 SSHFS-win或SAMBA掛載本機Linux的目錄。因實體機與虛擬機皆位於同一網路下,也可以透過Snapdrop傳檔案。

  3. 欲在虛擬機內部跑WSL和WSA的,參見 QEMU/KVM啟用巢狀Hyper-V

  4. 你還可以透過「GPU Passthrough」,將Linux的獨立顯示卡直通給Windows 11的虛擬機,使其能執行3D應用程式、跑AI計算、玩遊戲。參見 在Windows虛擬機玩遊戲

  5. 如果你想從手機、筆記型電腦,遠端存取Windows虛擬機桌面,這邊提供一個Ivon用過的簡單暴力解決方案: RDP+Zerotier

6. 虛擬機維護
#

6.1 手動備份與還原虛擬機
#

參考自 Backup and Restore KVM Vms. Introduction - Sylia CH

在備份Windows 11虛擬機的時候,除了備份組態與虛擬硬碟以外,還要記得備份EFI Variables。

  1. 首先是備份,先將虛擬機關機。備份虛擬機XML組態到/run/media/user/SSD2/的第二個硬碟
su
# 列出虛擬機
virsh list --all
# 將虛擬機組態儲存為XML
virsh dumpxml windows11 > /run/media/user/SSD2/windows11.xml
  1. 備份虛擬機硬碟到SSD2硬碟
cp /var/lib/libvirt/images/windows11.qcow2 /run/media/user/SSD2/windows11.qcow2
cp /usr/share/edk2/x64/OVMF_CODE.secboot.fd /run/media/user/SSD2/OVMF_CODE.secboot.fd
  1. 接著是儲存EFI Variables的OVMF_VARS
cp /var/lib/libvirt/qemu/nvram/Windows11_VARS.fd /run/media/user/SSD2/Windows11_VARS.fd
  1. 若要還原虛擬機:
# 將虛擬硬碟移動至原本位置
su
cp /run/media/user/SSD2/windows11.qcow2 /var/lib/libvirt/images/windows11.qcow2
cp /run/media/user/SSD2/Windows11_VARS.fd /var/lib/libvirt/qemu/nvram/Windows11_VARS.fd
# 按照備份的XML組態建立虛擬機
virsh define --file  /run/media/user/SSD2/windows11.xml

6.2. 如果虛擬機硬碟容量不足
#

參考 如何用圖形化程式調整QEMU/KVM虛擬機的qcow2硬碟容量大小

相關文章

在Linux安装Windows 11 QEMU虛擬機時啟用Secure Boot和TPM 2.0
Linux系統 虛擬機與容器技術 Windows QEMU Libvirt
Gentoo Linux安裝QEMU/KVM和Virt Manager虛擬機軟體
Linux系統 虛擬機與容器技術 Gentoo QEMU Libvirt
在Arch Linux上安裝QEMU/KVM和Virt Manager虛擬機軟體
Linux系統 虛擬機與容器技術 Arch Linux QEMU Libvirt

留言板

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。要討論程式碼請用Giscus,匿名討論請用Disqus。

這是Giscus留言板,需要Github帳號才能留言。支援markdown語法,若要上傳圖片請貼Imgur連結。您的留言會在Github Discussions向所有人公開。

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。