快轉到主要內容

啟用巢狀Hyper-V,讓Windows 11 QEMU/KVM虛擬機支援WSL與WSA

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

Running Hyper-V in QEMU/KVM with Nested Virtualization on Linux.

Windows 11專業版內建「Hyper-V」虛擬化技術,除了開虛擬機,亦是跑Docker、Linux子系統 (WSL)、Android子系統 (WSA) 的必要條件。

若在Linux系統安裝Windows QEMU/KVM虛擬機,要如何在虛擬機內部啟用Hyper-V呢?

虛擬機裡面的虛擬化技術,稱作巢狀虛擬化 (Nested Virtualization),QEMU/KVM要達成巢狀虛擬化是有可能的,只需要調整一些參數即可。

1. 調整虛擬機組態
#

  1. 用Virt Manager 安裝Windows 11虛擬機,記得裝專業版。

  2. 點選Virt Manager → 編輯 → 偏好設定。再點選編輯虛擬機硬體 → CPU數,編輯XML

  3. 找到<features> </features>這段,加入以下內容。設定Hyper-V模式為custom,並隱藏KVM狀態。

 <features>

    <acpi/>
    <apic/>

    <hyperv mode="custom">
      <relaxed state="on"/>
      <vapic state="on"/>
      <spinlocks state="on" retries="8191"/>
      <vpindex state="on"/>
      <runtime state="on"/>
      <synic state="on"/>
      <stimer state="on"/>
      <reset state="on"/>
      <vendor_id state="on" value="123456789123"/>
      <frequencies state="on"/>
    </hyperv>

    <kvm>
      <hidden state="on"/>
    </kvm>

    <vmport state="off"/>
    <smm state="on"/>
    <ioapic driver="kvm"/>

  </features>

2. 於KVM虛擬機內部啟用Hyper-V
#

開機進入Windows,參考 Microsoft文件啟用Hyper-V。

  1. 專業版以系統管理員身份執行終端機,用PowerShell指令啟用Hyper-V:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
  1. 重開機後,用以下指令確認Hyper-V服務有上線,應會看到State: Enabled
Get-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V

3. 安裝WSL與WSA
#

WSL參照此說明: 在Windows 11安裝WSL2子系統 (Ubuntu)。有了WSL後在裡面直接裝Docker即可。

WSA請參考 Microsoft官方說明 適用於 Android™ 的 Windows 子系統 ️

參考資料
#

相關文章

【圖解】如何在Linux系統安裝Windows 11虛擬機(QEMU/KVM) + 常用技巧
Linux系統 虛擬機與容器技術 QEMU Windows Libvirt
在Linux安装Windows 11 QEMU虛擬機時啟用Secure Boot和TPM 2.0
Linux系統 虛擬機與容器技術 Windows QEMU Libvirt
QEMU/KVM虛擬機繞過遊戲Easy Anti-Cheat的方法,隱藏KVM狀態
Linux系統 虛擬機與容器技術 QEMU Linux Windows

留言板

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

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

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