适用于:✔️ Windows VM
本文介绍如何在 Microsoft Azure 中创建嵌套虚拟化环境,以便可以在 Hyper-V 主机(修复/救援 VM)上装载故障虚拟机(VM)的磁盘以进行故障排除。
自动进程
若要使用嵌套虚拟化环境对有故障的 VM 进行故障排除,强烈建议使用 Azure VM 修复命令。 可以使用 Azure VM 修复命令创建包含嵌套 Hyper-V 的修复 VM,并自动修复故障 VM。
手动过程
注意
仅当 Azure VM 修复命令不可用或由于兼容性问题而失败时,才使用此过程。
步骤 1:创建救援 VM 并安装 Hyper-V 角色
创建一台新的救援 VM:
操作系统:Windows Server 2016 Datacenter 或更高版本的 Windows Server Datacenter。
与故障 VM 相同的位置。
映像:选择第 2 代映像或第 1 代映像。
安全类型:将安全类型更改为 “标准”。 默认情况下,安全类型为 受信任的启动虚拟机 ,不支持嵌套虚拟化。 如果将安全类型设置为 “受信任的启动虚拟机”,并尝试在救援 VM 上添加服务器角色,将遇到以下错误消息:
无法安装 Hyper-V,因为 BIOS 中未启用虚拟化支持。
注意
发生此错误的原因是 VM 的 BCDEdit 配置中未启用虚拟机监控程序。 若要修复此错误,请在安装 Hyper-V 角色之前设置该选项。
若要检查
hypervisorlaunchtypeVM 上的选项,请从提升的 PowerShell 命令提示符运行以下 cmdlet:bcdedit /enum下面是输出示例。 在此示例中,不包括虚拟机监控程序参数,指示未启用虚拟机监控程序。
Windows Boot Manager -------------------- identifier {bootmgr} device partition=\Device\HarddiskVolume3 path \EFI\Microsoft\Boot\bootmgfw.efi description Windows Boot Manager locale en-US inherit {globalsettings} bootshutdowndisabled Yes default {current} resumeobject {24089230-1111-2222-3333-6045bd34a71d} displayorder {current} toolsdisplayorder {memdiag} timeout 30 Windows Boot Loader ------------------- identifier {current} device partition=C: path \Windows\system32\winload.efi description Windows Server locale en-US inherit {bootloadersettings} recoveryenabled No isolatedcontext Yes allowedinmemorysettings 0x15000075 osdevice partition=C: systemroot \Windows resumeobject {24089230-1111-2222-3333-6045bd34a71d} nx OptOut bootstatuspolicy IgnoreAllFailures ems Yes若要将
hypervisorlaunchtype选项auto设置为并重启 VM,请运行以下 cmdlet:bcdedit /set hypervisorlaunchtype auto Restart-Computer -Force
创建救援 VM 后,通过远程桌面连接到救援 VM。
在服务器管理器中,选择管理>添加角色和功能。
在“安装类型”部分,选择“基于角色或基于功能的安装”。
在“选择目标服务器”部分中,请确保已选择“救援 VM”。
选择“HYPER-V 角色”“添加功能”>。
选择“功能”部分上的“下一步”。
如果虚拟交换机可用,请选择它。 否则请选择“下一步”。
在“迁移”部分上,选择“下一步”。
在“默认存储”部分,选择“下一步”。
如果需要,请选中此框以自动重启服务器。
选择“安装” 。
允许服务器安装 Hyper-V 角色。 这需要几分钟的时间,服务器将自动重新启动。
步骤 2:在救援 VM 的 Hyper-V 服务器上创建故障 VM
为有问题的 VM 的 OS 磁盘创建快照磁盘 ,然后将快照磁盘附加到救援 VM。
通过远程桌面连接到救援 VM。
打开磁盘管理 (diskmgmt.msc)。 确保故障 VM 的磁盘设置为 脱机。
打开 Hyper-V 管理器:在“服务器管理器”中,选择“Hyper-V 角色”。 右键单击服务器,然后选择“Hyper-V 管理器”。
在 HYPER-V 管理器中,右键单击救援 VM,然后选择“新建”“虚拟机”>“下一步”>。
键入 VM 的名称,然后选择“下一步”。
根据错误的 VM 生成选择 第 1 代或 第 2 代。
设置启动内存为 1024 MB 或以上。
如果适用,请选择已创建的 Hyper-V 网络交换机。 否则请转到下一页。
选择“稍后附加虚拟硬盘”。
创建 VM 后,选择“完成”。
右键单击创建的 VM,然后选择“设置”。
选择 第 1 代 VM 的 IDE 控制器 0 或 第 2 代 VM 的 SCSI 控制器 ,选择 硬盘驱动器,然后单击“ 添加”。
在 物理硬盘中,选择附加到 Azure VM 的故障 VM 的磁盘。 如果没有看到任何列出的磁盘,请使用磁盘管理检查是否将磁盘设置为离线。
依次选择“应用”、“确定” 。
双击 VM,然后启动它。
现在你可以将此 VM 作为本地 VM 进行操作。 你可以按照所需的任何故障排除步骤操作。
步骤 3:替换故障 VM 使用的 OS 磁盘
重新在线获得 VM 后,关闭 Hyper-V 管理器中的 VM。
分离修复的 OS 磁盘。
后续步骤
如果在连接到 VM 时遇到问题,请参阅对 Azure VM 的 RDP 连接进行故障排除。 如果在访问 VM 上运行的应用程序时遇到问题,请参阅对 Windows VM 上的应用程序连接问题进行故障排除。
联系我们寻求帮助
如果有疑问,可以询问 Azure 社区支持。 你还可以将产品反馈提交到 Azure 反馈社区。