适用于:✔️ 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-init waagent 正确配置或已正确配置。 |
详细信息
有关如何捕获 Linux 映像以准备上传的详细信息,请参阅 如何捕获 Linux 映像进行上传准备。
联系我们寻求帮助
如果你有任何疑问或需要帮助,请创建支持请求或联系 Azure 社区支持。 你还可以将产品反馈提交到 Azure 反馈社区。