如何在Windows 10 Hyper-V中啟用嵌套虛擬化

Hyper-V是內建於Windows和Windows Server中的免費hypervisor。它用於在Windows上運行虛擬機器(VM)。虛擬化還用於其他功能,如基於虛擬化的安全性(VBS)、Windows Sandbox和Windows Defender應用程式防護(WDAG)。開發人員有時會在Visual Studio中使用虛擬化來運行裝置模擬器。

微軟在Windows Server 2016中引入了對嵌套虛擬化的支援。嵌套虛擬化允許您在運行在Hyper-V主機上的VM客戶端內啟用Hyper-V。因此,您可以將其視為在VM內運行的VM。

廣告

在使用嵌套虛擬化之前,您需要滿足一些先決條件。VM配置必須為8.0或更高版本。嵌套虛擬化僅支援具有虛擬化(VT-x)和擴展頁表(EPT)的Intel CPU。

AMD CPU上的嵌套虛擬化

嵌套虛擬化可在Windows 10版本19636及更高版本中使用。據我所了解,AMD支援將作為Windows 11和Windows Server 2022的一部分正式提供。這兩款產品預計將於2021年下半年推出。

建立虛擬機器

預設情況下,並未啟用嵌套虛擬化。嵌套虛擬化是基於每個虛擬機啟用的。第一步是在您的Hyper-V 主機上創建至少一個虛擬機,無論是 Windows 10 還是 Windows Server。如果您以前從未在 Windows 中設置過虛擬機,您可以查看 Petri 下面的指南。

指南:如何在虛擬機中安裝 Windows 10
指南:如何在虛擬機中安裝 Windows Server 2019

廣告

您無需在虛擬機中安裝操作系統即可啟用嵌套虛擬化。

啟用嵌套虛擬化

一旦在您的 Hyper-V 主機上設置了客戶虛擬機,重要的是在啟用嵌套虛擬化之前確保該虛擬機處於“關閉”狀態。您可以使用 Hyper-V 管理器或使用 Stop-VM PowerShell 命令停止虛擬機。打開 PowerShell 或 Windows 終端,運行下面的命令,將Windows 11 替換為您的虛擬機名稱。

Stop-VM -Name 'Windows 11'

如果您不確定要啟用嵌套虛擬化的虛擬機名稱,可以使用 Get-VM 獲取主機上的虛擬機列表。Get-VM 還提供每個虛擬機的版本號。

Get-VM

如果您想要更新VM的版本號以支援嵌套虛擬化,請如下運行Update-VMVersion,再將Windows 11替換為您的VM的名稱。

廣告

How to Enable Nested Virtualization in Hyper-V (Image Credit: Russell Smith)
Update-VMVersion -Name 'Windows 11'

現在您的VM的狀態已設置為「關閉」,您可以啟用嵌套虛擬化。啟用的唯一方法是使用PowerShell。在PowerShell終端窗口中運行以下命令,將Windows 11替換為您的VM的名稱。

Set-VMProcessor -VMName 'Windows 11' -ExposeVirtualizationExtensions $True
How to Enable Nested Virtualization in Hyper-V (Image Credit: Russell Smith)

現在只剩下的是啟動VM,您可以使用Hyper-V Manager或按照下面所示使用PowerShell進行操作:

Start-VM -Name 'Windows 11'

當VM啟動後,登入Windows,您將能夠安裝Hyper-V功能或伺服器角色,以及其他依賴於它的功能。

Source:
https://petri.com/how-to-enable-nested-virtualization-in-hyper-v/