部署自定义 Linux 映像时出现预配错误

适用于:✔️ Linux VM

概述

将通用虚拟机(VM)映像作为特定 VM 映像上传或捕获时,将发生 预配超时错误

将专用 VM 映像作为通用 VM 映像上传或捕获时,将发生 预配超时错误 和预配失败。

若要在不出错的情况下部署自定义映像,必须确保在上传或捕获过程中图像的类型不会更改。

本文介绍通用化和专用图像的可能组合、你将遇到的错误类型以及如何修复错误。

注意

有关通用和专用映像的说明和比较,请参阅 通用和专用

上传通用和专用图像的组合

  • 如果作系统(OS)是使用通用设置上传的通用 Linux 映像,上传和部署将成功。
  • 如果 OS 是专用 Linux 映像,并且你使用专用设置上传它,上传和部署将成功。
  • 如果操作系统是作为专用映像上传的通用 Linux 映像,那么新的虚拟机将在预配阶段无法推进,并且会出现预配超时错误
  • 如果 OS 是 Linux 专用的,并作为通用映像上传,则新 VM 将使用原始计算机名称、用户名和密码运行,这会导致预配失败错误。

以下矩阵显示了 Linux 通用化和专用 OS 映像的可能上传组合:

操作系统 上传专用图像 上传通用图像
通用映像 VM 将无法通过配置阶段,并出现 配置超时错误 上传和部署将成功。
专用映像 上传和部署将成功。 VM 将使用原始计算机名称、用户名和密码运行,这会导致预配失败错误。

上传错误的解决方法

若要解决这些错误,请使用与 OS 相同的设置(通用化或专用化)从本地环境上传原始 VHD。 如果将其上传为通用化,请确保先运行 -deprovision 该命令。

捕获通用化图像和专业图像的组合

  • 如果 OS 是使用通用设置捕获的通用 Linux 映像,上传和部署将成功。
  • 如果 OS 是专用 Linux 映像,并且你使用专用设置捕获它,则上传和部署将成功。
  • 如果操作系统是 Linux 已通用化,但捕获时标记为专用,则会出现 预配超时错误,因为原始 VM 不可用,且它已被标记为通用化。
  • 如果 OS 是 Linux 专用的,但捕获为通用化,则会出现预配失败错误,因为新 VM 将保留原始计算机名称、用户名和密码。 此外,原始 VM 将变得不可用,因为它标记为专用化。

以下矩阵显示了 Linux 通用化和专用 OS 映像的可能捕获组合:

操作系统 捕获专用映像 捕获通用映像
泛化图像 预配超时错误 ,因为原始 VM 不可用,因为它被标记为通用化。 上传和部署将成功。
专用映像 上传和部署将成功。 预配失败错误,因为新 VM 将保留原始计算机名、用户名和密码。 此外,原始 VM 将变得不可用,因为它标记为专用化。

捕获错误的解决方法

若要解决这些错误,请从门户删除当前映像,并使用 与 OS(通用化或专用化)相同的设置从当前 VHD 中捕获该映像。 有关详细信息,请参阅 如何捕获 Linux VM 映像以供上传准备

上传过程中的预配超时错误

将 Linux 通用化 OS 上传为专用 OS 时,可能会导致预配超时错误,导致 VM 在预配期间停滞不前。 此问题通常是由于通用映像和专用映像之间的配置存在根本差异。 有关差异的详细信息,请参阅 通用化和专用化。

下面是预配超时错误的一些可能方案和说明:

场景 问题 原因 解决方案
持久网络配置冲突 通用化映像旨在删除唯一标识符和特定配置,使其可供新部署使用。 将通用映像上传为专用映像可能会导致网络冲突,因为网络配置持续。 剩余网络设置或 DHCP 客户端 ID 保留在映像中,这会导致系统在预配期间尝试获取新的 IP 地址时挂起。 在上传映像之前,请验证并删除任何静态网络配置或标识符。
安全外壳(SSH)密钥或密码重置问题 通用映像不会保留特定于用户的配置,例如 SSH 密钥或密码。 预配期间,VM 可能会尝试重置这些配置;但是,它们的缺失或配置不当可能会导致超时。 如果没有预定义的 SSH 密钥或密码,预配服务将无法完成配置。 确保 VM 配置包含与 OS 状态兼容的 SSH 或密码身份验证方法。
缺少 Cloud-Init 或 Waagent 配置 通用映像需要预配代理,例如 cloud-init 或在 waagent 首次启动期间设置 VM。 如果这些配置缺失或不兼容,预配将停止。 专用映像附带预配置的初始设置脚本,而通用映像依赖于其配置的初始化工具。 在上传之前验证映像中是否已cloud-initwaagent正确配置或已正确配置。

详细信息

有关如何捕获 Linux 映像以准备上传的详细信息,请参阅 如何捕获 Linux 映像进行上传准备

联系我们寻求帮助

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