(预览)将现有的 Azure Gen1 VM 升级到受信任启动

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

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

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

重要

目前,对于将现有 Gen1 VM 升级到受信任启动的支持处于预览阶段。 不支持在未启用受信任启动的情况下将 Gen1 VM 升级到 Gen2

先决条件

不支持的 Gen1 VM 配置

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

  • 生产工作负载:该预览功能应仅用于测试、评估和反馈。 不建议使用生产工作负载。
  • 操作系统:Windows Server 2016、Azure Linux、Debian 以及受信任启动支持的操作系统 (OS) 版本下未列出的任何其他操作系统。 对于Windows Server 2016(仅限此操作系统),解决方法是将来宾 OS 更新到 Windows Server 2019 或 2022
  • VM 大小:配置了未在受信任启动支持的大小系列下列出的 Gen1 VM。 解决方法是将 VM 大小更新为受信任启动支持的 VM 大小系列。
  • Azure 备份:使用标准策略配置了 Azure 备份的 Gen1 VM。 解决方法是将 Gen1 VM 备份从标准迁移到增强策略
  • BitLocker 或等效加密:使用 BitLocker 或等效加密技术来加密 Windows Gen1 VM 来宾 OS 卷。 解决方法是在升级之前禁用 Windows OS 卷加密,并在成功完成受信任启动升级后重新启用。

最佳做法

  • 在启用“受信任启动”安全类型之前,为与生产工作负载关联的 Azure VM 创建还原点。 可以使用还原点以之前的已知状态重新创建磁盘和 VM。
  • 在执行受信任启动升级之前,请查看已知问题
  • 在升级过程中,你将无法在 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

谨慎

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

注释

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 升级到受信任启动

注释

  • 启用受信任启动后,当前 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。

已知问题

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

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

解决方法:此问题已在 24H2 内部版本 26100.2314 中得到修复。

屏幕截图显示了 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: 驱动器号的临时存储磁盘

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

将 Azure Gen1 VM 升级到受信任启动后,映像引用仍然显示源为 Gen1 OS 映像。 映像引用未更新是一个已知限制,并将在 Gen1 到受信任启动 VM 升级支持的正式发布版本中得到解决。

常见问题

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

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

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

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