Windows 启动管理器错误 - 0xC0000428状态无效映像哈希

适用于:✔️ Windows VM

本文提供了解决使用预览映像且试用期已过期的问题的步骤,从而阻止启动 Azure 虚拟机(VM)。

症状

使用 启动诊断 查看 VM 的屏幕截图时,会看到屏幕截图显示带有消息的 Windows 启动管理器:

文件:\windows\system32\boot\winload.exe

状态:0xc0000428

信息:Windows 无法验证此文件的数字签名。

Windows 启动管理器窗口的屏幕截图,其中状态为 Ox0000428,以及 Windows 无法验证此文件的数字签名的信息。

或消息:

文件:\Windows\system32\winload.exe

状态:0xc0000428

信息:无法验证此文件的数字签名。

Windows 启动管理器窗口的屏幕截图,其中状态为 Ox0000428,以及无法验证此文件的数字签名的信息。

原因

用于生成 VM 的映像是具有到期日期的预览映像,而不是 RTM(发布到制造)映像。

预览图像具有指定的生命周期,在通过到期日期时会显示你看到的屏幕截图,这意味着图像的试用已结束。

预览图像示例

a699494373c04fc0bc8f2bb1389d6106__Windows-Server-Technical-Preview-201505.01-en.us-127GB.vhd

无法延长预览映像的到期日期。 预览到期后,VM 无法再启动。

  • 根据产品的不同,试用期可能会有所不同。 例如,Windows 预览版映像的试用期为 180 天。

  • 在 Azure 中,作为预览版的 Windows 的所有映像都将在其说明中包含说明,说明它们不适合生产,并且它们仅适用于指定的试用期或用作“预览版”。

解决方案

提示

如果 VM 有最近的备份,可以尝试 从备份 还原 VM 以修复启动问题。

如果映像是预览映像,则无法延长所用映像的到期日期,则需要 使用非预览映像部署新 VM 。 以下步骤将帮助你确定是否已使用预览映像,并提供资源来帮助将数据从此 VM 传输到新 VM。 如果已将图像积极标识为预览图像,则无法恢复该映像,因为它现在已过期。

根据偏好,可以使用 Azure PowerShell 或 Azure CLI 查询映像,以确定它是预览映像。 可以使用这些命令来确认图像是预览图像。

使用 Azure PowerShell 进行查询

  1. 打开 Windows PowerShell 应用程序。

  2. 运行以下命令:

    $locName = "<LOCATION>" 
    $pubName = "<PUBLISHER NAME>" 
    $offerName = "<OFFER NAME>" 
    $skuName= "<YEAR WHEN THIS IMAGE WAS RELEASED>"
    Get-AzVMImagePublisher -Location $locName | Select $pubName
    Get-AzVMImageOffer -Location $locName -PublisherName $pubName | Select Offer
    Get-AzVMImageSku -Location $locName -PublisherName $pubName -Offer $offerName | Select Skus
    Get-AzVMImage -Location $locName -PublisherName $pubName -Offer $offerName -Skus $skuName | Select Version
    
  • 在前面的命令中,替换、<PUBLISHER NAME><OFFER NAME>替换<LOCATION><YEAR WHEN THIS IMAGE WAS RELEASED>输入信息。 同时删除“<”和“”>符号。

    请参阅以下示例:

    $locName = "West US" 
    $pubName = "MicrosoftWindowsServer" 
    $offerName = "WindowsServer" 
    $skuName= "2016-Datacenter"
    Get-AzVMImagePublisher -Location $locName | Select $pubName
    Get-AzVMImageOffer -Location $locName -PublisherName $pubName | Select Offer
    Get-AzVMImageSku -Location $locName -PublisherName $pubName -Offer $offerName | Select Skus
    Get-AzVMImage -Location $locName -PublisherName $pubName -Offer $offerName -Skus $skuName | Select Version
    

使用 Azure CLI 进行查询

  1. 如果尚未安装,则需要 安装 Azure CLI

  2. 下载后,使用命令提示符或 PowerShell 输入 az login 命令,然后使用帐户凭据登录。

  3. 登录后,输入以下命令:

    az vm image list-publishers --location "<LOCATION>"
    az vm image list-offers --location "West US" --publisher "<PUBLISHER NAME>"
    az vm image list-skus --location "West US" --publisher "<PUBLISHER NAME>" --offer "<OFFER NAME>"
    az vm image list  --location "West US" --publisher "<PUBLISHER NAME>" --offer "<OFFER NAME>" --sku "<YEAR WHEN THIS IMAGE WAS RELEASED>"
    
  • 在前面的命令中,替换、<PUBLISHER NAME><OFFER NAME>替换<LOCATION><YEAR WHEN THIS IMAGE WAS RELEASED>输入信息。 同时删除“<”和“”>符号。

    请参阅以下示例:

    az vm image list-publishers --location "West US"
    az vm image list-offers --location "West US" --publisher "MicrosoftWindowsServer"
    az vm image list-skus --location "West US" --publisher "MicrosoftWindowsServer" --offer "WindowsServer"
    az vm image list  --location "West US" --publisher "MicrosoftWindowsServer" --offer "WindowsServer" --sku "2016-Datacenter"
    

联系我们寻求帮助

如果你有任何疑问或需要帮助,请创建支持请求联系 Azure 社区支持。 你还可以将产品反馈提交到 Azure 反馈社区