在进行 VM 测试时,出于好奇,我Enable nested virtualization
在 Windows Admin Center(版本 2103.2 Build 1.3.2105.24004)的“处理器”选项卡中打勾。
尝试启动 VM 会返回此错误,这是有道理的:
RemoteException: 无法启动虚拟机 VM NAME。错误:“VM NAME”无法启动。“VM NAME”无法初始化。无法启动虚拟机,因为此平台不支持嵌套虚拟化。“VM NAME”无法启动。(虚拟机 ID)“VM NAME”无法启动工作进程:未指定的错误 (0x80004005)。(虚拟机 ID)“VM NAME”无法初始化。(虚拟机 ID )无法启动虚拟机,因为此平台不支持嵌套虚拟化。考虑不向虚拟机公开虚拟化扩展。
但是,在此更改之后,我无法取消勾选Enable nested virtualization
,因为保存会立即再次勾选。如何禁用它以便 VM 可以再次运行?
或者...
Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $false
这似乎是一个错误(我已通过 WAC 反馈表提交),即使使用 Hyper-V 管理器也无法解决。内置的 Powershell 工具似乎也没有相应的命令来执行此操作,除非您有System Center,它添加了一个名为
Set-SCVirtualMachine
. 我还没有测试过。我已经通过以下方式解决了它:
在 Windows Admin Center 中,使用文件和文件共享模块导航到 VM 保存位置。该文件夹应包含一个
.vmcx
文件,即配置文件。您可能无法直接下载(以及稍后上传和替换)该文件。在这种情况下,在主机上输入命令行(例如通过Powershell模块)并将
<FILENAME>.vcmx
文件复制到<FILENAME>.vcmx.backup
,只需使用copy <FILENAME>.vcmx <FILENAME>.vcmx.backup
. 之后,下载文件。做一个额外的备份!使用 HxD 等十六进制编辑器打开文件并搜索
nested_virtualization
. 在 that 和 text 之间enable_perfmon_pmu
,您应该看到这样的视图。偏移/起始位置不同,并且随着每个 VM 的变化而变化。enabled
(十六进制65 6E 61 62 6C 65 64
)之后,您将看到一个十六进制序列00 01
。将该序列更改为 read00 00
。保存修改后的文件,上传替换原文件(可能需要使用Powershell复制覆盖文件)
再次启动 VM - VM 应该像更改之前一样正常启动。