共用方式為

将现有的 Azure Gen1 vm 升级到受信任启动功能

适用于:✔️ Linux VM ✔️ Windows VM ✔️ 第 1 代 VM

Azure 虚拟机支持通过升级到受信任启动安全类型将第 1 代虚拟机 (VM) 升级到第 2 代

受信任启动是一种在 Azure 第 2 代 VM 上实现基础计算安全性的方法,可防范 Bootkit 和 Rootkit 等高级持久性攻击方法。 它通过将安全启动、虚拟受信任的平台模块 (vTPM) 和 VM 上的启动完整性监视等基础结构技术结合在一起来实现这一点。

注释

在不启用受信任启动的情况下,将 Gen1 VM 升级到 Gen2 是不支持的。

先决条件

  • Azure VM 配置了:
  • Azure VM 未使用受信任启动当前不支持的功能
  • 如果为 VM 启用了 Azure 备份,则应为其配置增强备份策略。 无法为配置了标准策略备份保护的 VM 启用“受信任启动”安全类型
  • 将测试 Gen1 VM 升级到受信任启动,并确定在将与生产工作负载关联的 Gen1 VM 升级到受信任启动之前,是否需要进行任何更改才能满足先决条件。
  • 如果已启用,请在升级之前禁用任何 Windows OS 卷加密,包括 BitLocker。 成功升级后,应重新启用所有 Windows OS 卷加密。 数据磁盘或 Linux OS 卷不需要执行此操作。

不支持的 Gen1 VM 配置

如果 Gen1 VM 配置了以下内容,则不支持将 Gen1 升级到受信任启动 VM

最佳做法

重要

升级到受信任的启动后,VM 无法回滚到 Gen1 配置。 必须在升级之前使用备份完全恢复它。

  • 执行完整备份 或者,在启用受信任的启动安全类型之前,为与生产工作负荷关联的 Azure VM 创建还原点 。 可以使用备份或还原点重新创建磁盘和虚拟机,以恢复到 Gen1(第一代)配置的已知状态。
  • 在执行可信启动升级之前,请查看有关的已知问题和回滚步骤
  • 在升级过程中,你将无法在 MBR to GPT conversion 后扩展 Windows OS 磁盘系统卷。 建议在升级到受信任启动之前扩展系统卷,以满足将来的需求。
  • 应使用命令 对 Windows OS 磁盘卷进行碎片整理。Defrag C: /U /V 通过释放分区末尾,对 OS 卷进行碎片整理会降低 MBR(主启动记录)到 GPT(GUID 分区表)转换失败的风险。 请参阅碎片整理

更新来宾 OS 卷

第 2 代 VM 需要具有以下配置的来宾 OS 卷:

  • GPT 磁盘布局:Gen1 VM 的来宾 OS 卷大多设置为 MBR,需要更新为 GPT
  • EFI 系统分区:Gen1 VM 的来宾 OS 卷大多不包括此分区。

在将 Azure Gen1 VM 升级到受信任启动之前,请先使用所需配置完成 OS 卷更新。

重要

  • 将测试 Gen1 VM 升级到受信任启动,并确定在将与生产工作负载关联的 Gen1 VM 升级到受信任启动之前,是否需要进行任何更改才能满足先决条件。

使用内置 MBR2GPT.exe 实用工具,可以启用 GPT 磁盘布局并添加 Gen2 升级所需的 EFI system partition

谨慎

之后将无法扩展 Windows OS 磁盘系统卷 MBR to GPT conversion。 建议在执行升级之前扩展系统卷以满足将来的需求。

注释

Windows Server 2016 不支持 MBR2GPT.exe。 解决方法是将来宾 OS 更新到 Windows Server 2019 或 2022,然后进行 MBR to GPT conversion。 请参阅 Azure 中运行 Windows Server 的 VM 的就地升级

  1. 远程连接(使用 RDP 或命令行)到 Gen1 Windows VM 以执行转换。

  2. 运行命令 MBR2GPT /validate /allowFullOS 并确保 Disk layout validation 成功完成。 如果 失败,Disk layout validation请不要继续操作。 有关失败的常见原因和相关解决方法列表,请参阅已知问题。 有关详细信息和故障排除,请参阅 MBR2GPT 故障排除

  3. 运行命令 MBR2GPT /convert /allowFullOS 以执行 MBR 到 GPT 转换。 成功输出示例:

    If conversion is successful the disk can only be booted in GPT mode.
    These changes cannot be undone!
    
    MBR2GPT: Attempting to convert disk 0
    MBR2GPT: Retrieving layout of disk
    MBR2GPT: Validating layout, disk sector size is: 512 bytes
    MBR2GPT: Trying to shrink the OS partition
    MBR2GPT: Creating the EFI system partition
    MBR2GPT: Installing the new boot files
    MBR2GPT: Performing the layout conversion
    MBR2GPT: Migrating default boot entry
    MBR2GPT: Adding recovery boot entry
    MBR2GPT: Fixing drive letter mapping
    MBR2GPT: Conversion completed successfully
    MBR2GPT: Before the new system can boot properly you need to switch the firmware to boot to UEFI mode!
    

将 Gen1 VM 升级到受信任启动

注释

  • 默认情况下 vTPM 处于启用状态。
  • 默认情况下未启用安全启动。 强烈建议在不使用自定义未签名内核或驱动程序的情况下启用安全启动。 安全启动可保留启动完整性,并为 VM 实现基础安全性。

确保安装最新的 Azure PowerShell 并使用 Connect-AzAccount 登录到 Azure 帐户。

按照这些步骤将现有 Gen1 VM 升级到 Gen2,并通过 Azure PowerShell 启用受信任启动。

  1. 登录到 VM Azure 订阅。

    Connect-AzAccount -Environment AzureChinaCloud -SubscriptionId 00000000-0000-0000-0000-000000000000
    
  2. 解除分配 VM。

    Stop-AzVM -ResourceGroupName myResourceGroup -Name myVm
    
  3. 通过将 -SecurityType 设置为 TrustedLaunch 启用受信任启动。

    Get-AzVM -ResourceGroupName myResourceGroup -VMName myVm `
        | Update-AzVM -SecurityType TrustedLaunch `
            -EnableSecureBoot $true -EnableVtpm $true
    
  4. 在更新的 VM 配置中验证 securityProfile

    # Following command output should be `TrustedLaunch`
    
    (Get-AzVM -ResourceGroupName myResourceGroup -VMName myVm `
        | Select-Object -Property SecurityProfile `
            -ExpandProperty SecurityProfile).SecurityProfile.SecurityType
    
    # Following command output should return `SecureBoot` and `vTPM` settings
    (Get-AzVM -ResourceGroupName myResourceGroup -VMName myVm `
        | Select-Object -Property SecurityProfile `
            -ExpandProperty SecurityProfile).SecurityProfile.Uefisettings
    
    
  5. 启动 VM。

    Start-AzVM -ResourceGroupName myResourceGroup -Name myVm
    
  6. 启动已升级的受信任启动虚拟机。 验证是否可以使用 RDP(对于 Windows VM)或 SSH(对于 Linux VM)登录到 VM。

回滚

升级到受信任的启动后,Azure VM 无法回滚到 Gen1 配置。 可以 禁用受信任的启动 ,将 VM 从受信任的启动回滚到 Gen2(非受信任的启动)配置。

在升级之前创建的 Gen1 VM 的备份或还原点中,使用整个虚拟机及其磁盘进行还原,以完全回滚到 Gen1 VM。

已知问题

受信任启动升级后,VM 映像引用不会更改

将 Azure Gen1 VM 升级到受信任启动后,映像引用仍然显示源为 Gen1 OS 映像。 已知的限制是图像引用未更新。

此限制不会影响受信任启动升级后的 VM 或托管应用程序功能。 由于映像引用与正在运行的操作系统之间的断开连接,以下 VM 操作受到影响:

  • 虚拟机来宾修补:对于 服务器 操作系统,自动虚拟机来宾修补 会根据 VM 的镜像参考安装更新。
  • 重新映像:在信任启动升级后使用 Gen1 映像引用重新映像虚拟机将导致虚拟机启动失败。

进行 Windows 10 VM 受信任启动升级后,Windows 11 启动会失败

Windows 10 Gen1 VM 已成功升级到受信任启动,然后成功完成了 Windows 11 就地升级。 但在 Azure VM 停止和启动后,Windows 11 启动失败,并显示错误。

解决方法:此问题修复了 24H2 内部版本 26100.231423H2 内部版本 22631.5624

屏幕截图显示了 Azure Windows VM 启动失败。

[Windows] MBR 到 GPT 转换失败,并显示错误“找不到 EFI 系统分区的空间”

发生此错误的原因为如下之一:

  • 系统卷上没有可用的空闲空间
  • 系统卷已损坏。 可以通过尝试在磁盘管理控制台下将卷减小一些 MB 来进行验证。 使用命令 chkdsk C:/v/f 修复系统卷。
  • Virtual Disk 服务未运行或无法成功通信。 服务启动类型应设置为 Manual
  • Optimize Drives 服务未运行或无法成功通信。 服务启动类型应设置为 Manual
  • 系统卷磁盘已配置有四个 MBR 分区(MBR 磁盘布局支持的上限)。 需要删除其中一个分区,以便为 EFI 系统分区腾出空间。
    1. 运行 ReAgentc /info 以识别恢复主动使用的分区。 示例:Windows RE location: \\?\GLOBALROOT\device\harddisk0\partition4\Recovery\WindowsRE
    2. 运行 PowerShell cmdlet Get-Partition -DiskNumber 0 以标识所配置的当前分区。
    3. 运行 PowerShell cmdlet Remove-Partition -DiskNumber 0 -PartitionNumber X 以移除恢复服务未主动使用的任何额外的恢复分区,如步骤 1 中所述。

[Windows] MBR 到 GPT 无法更新ReAgent.xml

对于某些 Windows OS 版本(如 Windows 10),MBR2GPT 会生成直通错误 MBR2GPT: Failed to update ReAgent.xml, please try to manually disable and enable WinRE.

该警告指示 MBR2GPT.exe 无法在 C:\Windows\System32\Recovery\ReAgent.xml 中更新恢复分区 GUID。 此问题不应导致来宾 OS 功能出现问题,也不应对后续升级操作(如 Windows 11 升级成功或 Windows 11 在升级后正常工作)产生影响。 ReAgent.xml 会在 Windows 11 升级后使用正确的 GUID 进行更新,也就是说,如果在 MBR2GPT 转换和 Windows 11 升级之间不执行任何作,则 ReAgent.xml 中的 GUID 值将与 Windows 恢复配置同步。

要手动修复该警告,可以在进行 MBR2GPT 转换或将 Gen1 升级到受信任启动后,并在 Windows 11 升级之前使用所列步骤禁用并重新启用 WinRE,这些步骤会强制同步 ReAgent.xml 中的 WinRE GUID

  1. 完成 Gen1 -> 受信任启动升级。
  2. 运行 reagentc /disable
  3. 运行 reagentc /enable
  4. 运行 reagentc /info
  5. 打开 C:\Windows\System32\Recovery\ReAgent.xml 并验证 xml 文件中的 BCD GUID 是否匹配步骤 4 的输出。

[Windows] 升级后驱动器 D 被分配到系统保留分区

Gen1 VM 升级后,临时存储驱动器号分配“D”更改为“E”,并且前一个驱动器号分配给了系统保留分区。 可在升级后手动执行以下步骤来解决该问题:

升级后,检查服务器上的磁盘,如果系统保留分区具有驱动器号 D,则执行以下操作:

  1. 将页面文件从 D: 重新配置为 C:
  2. 重新启动 VM
  3. 将驱动器号 D: 从分区中移除
  4. 重新启动 VM 以显示带 D: 驱动器号的临时存储磁盘

常见问题

如果第 1 代 VM 不符合受信任启动的先决条件,该怎么办?

对于不满足升级到受信任启动的先决条件的第 1 代 VM,请了解如何满足先决条件。 例如,如果使用不受支持的虚拟机大小,请查找支持受信任启动的等效受信任启动支持的大小

为什么不支持仅升级到第 2 代(不含受信任启动)?

受信任启动可在 Azure 第 2 代 VM 上实现基础计算安全性,而无需额外成本。 此外,受信任启动 VM 与第 2 代 VM 大致相当。 因此,在不启用受信任启动的情况下,仅升级到第 2 代 VM 不会带来额外的好处。