如何使用启动诊断对 Azure 中的虚拟机进行故障排除

虚拟机进入不可启动状态的原因有很多。 若要解决使用资源管理器部署模型创建的虚拟机的问题,可以使用以下调试功能:控制台输出和 Azure 虚拟机的屏幕截图支持。

对于 Linux 虚拟机,可以从门户查看控制台日志的输出。 对于 Windows 和 Linux 虚拟机,Azure 使你能够查看虚拟机监控程序中 VM 的屏幕截图。 所有区域中的 Azure 虚拟机都支持这两项功能。 请注意,屏幕截图和输出最长可能需要 10 分钟才能显示在存储帐户中。

可以选择“启动诊断”选项以查看日志和屏幕截图。

Azure 门户的“启动诊断”页中的“屏幕截图”选项卡的屏幕截图。

常见启动错误

在使用 Azure 门户创建的虚拟机上启用诊断

以下过程适用于使用 资源管理器 部署模型创建的虚拟机。

在“管理”选项卡上的“监视”部分中,确保“启动诊断”处于打开状态。 默认设置是使用托管存储帐户启用启动诊断。

VM 创建启动诊断页中的选项的屏幕截图

注意

启动诊断功能不支持高级存储帐户或区域冗余存储帐户类型。 如果将高级存储帐户用于启动诊断,可能会在启动 VM 时收到 StorageAccountTypeNotSupported 错误。

从 Azure 资源管理器 模板部署

如果要从 Azure 资源管理器模板进行部署,请导航到虚拟机资源并追加诊断配置文件部分。 将 API 版本标头设置为“2015-06-15”或更高版本。 最新版本为“2018-10-01”。

{
  "apiVersion": "2018-10-01",
  "type": "Microsoft.Compute/virtualMachines",
  … 

使用诊断配置文件,可以选择要将这些日志放入其中的存储帐户。

    "diagnosticsProfile": {
 "bootDiagnostics": {
 "enabled": true,
 "storageUri": "[concat('https://', parameters('newStorageAccountName'), '.blob.core.windows.net')]"
 }
    }
    }
}

有关使用模板部署资源的详细信息,请参阅快速入门:使用 Azure 门户创建和部署 Azure 资源管理器模板

在现有虚拟机上启用启动诊断

若要在现有虚拟机上启用启动诊断,请执行以下步骤:

  1. 登录到Azure 门户,然后选择虚拟机。

  2. “帮助”部分中,选择“启动诊断”,然后选择“设置”选项卡。

  3. “启动诊断设置”中,选择具有托管存储帐户或自定义存储帐户的启动诊断。 现有 VM 的“启动诊断”页中的选项的屏幕截图

  4. 保存更改。

使用 Azure CLI 启用启动诊断

可以使用 Azure CLI 在现有 Azure 虚拟机上启用启动诊断。 有关详细信息,请参阅 az vm boot-诊断

修复启动诊断屏幕截图不刷新的问题

如果发现 Azure VM 的启动诊断屏幕截图在Azure 门户中已过时,请先确保在来宾操作系统中禁用虚拟显示超时。 例如,你可能会看到 Windows VM 登录屏幕上显示的时间已过时。

对于 Windows,请从提升的 CMD 运行以下命令

powercfg /setacvalueindex SCHEME_CURRENT SUB_VIDEO VIDEOIDLE 0

对于 Linux,请运行以下命令

xset s off

对于 Windows VM,Azure 预配代理不同于 VM 代理。 它在预配从通用化映像创建的 VM 期间运行上述命令。 如果在 C:\Windows\Panther\WaSetup.xml(即预配代理日志)中搜索 powercfg,可以看到此事件。 但是,由于预配代理不需要针对从专用 VHD 创建的 VM 运行,因此需要手动运行 powercfg 命令来禁用虚拟显示超时。 此外,还可以从通用化映像创建一个特别旧的 Azure VM,该 VM 可能未设置,因为它是在预配代理更新之前创建的,以禁用虚拟显示超时。

联系我们寻求帮助

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