对 VM Import/Export 进行故障排除 - VM Import/Export
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

对 VM Import/Export 进行故障排除

导入或导出虚拟机(VM)时,大多数错误是因为您尝试执行不受支持的操作而发生的。为避免此类错误,请务必仔细核查要求和限制。

导入任务可能会在完成之前停止,然后失败。您可以在导入任务看似因失败而停止但还未变为 completed 状态之前,收集这些导入任务的详细信息。要收集此类详细信息,请使用适用于所用导入操作的命令,来描述正在进行的转换任务的详细信息:

导入映像错误

Error Code: InvalidParameter, Error Message: Message: Parameter disk-image-size=0 has an invalid format

不支持指定的映像格式。请使用支持的一种映像格式 (VHD、VHDX、VMDK 或原始格式) 重试操作。

A client error (MalformedPolicyDocument) occurred when calling the CreateRole operation: Syntax errors in policy

您必须在策略文档名称前包含 file:// 前缀。

ClientError:磁盘验证失败 [OVF 文件解析错误:不支持带有分块磁盘文件的 OVA]

VM Import/Export 不支持导入已分成多个文件的磁盘。检查磁盘格式,然后将 VM 磁盘作为单个文件重试该操作。

ClientError: Disk validation failed [Unsupported VMDK File Format]

VMDK 文件必须是流优化型。有关更多信息,请参阅 VM Import/Export 支持的映像格式

ClientError: Multiple different grub/menu.lst files found

VM Import/Export 在导入任务期间发现了以下至少一个重复文件:grub.cfggrub.confmenu.lst。不支持具有双启动配置的虚拟机。有关更多信息,请参阅 使用 VM Import/Export 导入资源的限制

服务角色 vmimport 不存在或没有让服务继续的足够权限

VM Import 服务角色缺失或不正确。如果尝试开始导入的用户、小组或角色对 Amazon EC2 资源没有足够的访问权限,您也可能收到此错误。

如果调用 ImportImage 的用户具有 Decrypt 权限,但 vmimport 角色不具备此权限,也可能发生此错误。如果您使用具有Amazon KMS托管密钥的服务器端加密 (SSE-KMS) 保护您在 Amazon S3 中的静态数据,则您需要向服务角色分配其他 Decrypt 权限,如以下 JSON 代码所示:

{ "Sid":"Allow vmimport to decrypt SSE-KMS key", "Effect":"Allow", "Principal":{ "AWS":[ "arn:aws:iam::accountid:role/vmimport" ] }, "Action":[ "kms:Decrypt" ], "Resource":"*" }

导入实例错误

Error Code: InvalidParameter, Error Message: Message: Parameter disk-image-size=0 has an invalid format

不支持指定的映像格式。请使用支持的映像格式 (OVA、VHD、VMDK 或原始格式) 重试操作。

Client.Unsupported:未找到可启动的分区。(Service: AmazonEC2; Status Code: 400; Error Code: Unsupported; Request ID: <RequestID>)

根卷采用 GUID 分区表 (GPT) 分区。不支持采用 GPT 分区的卷。请将根卷转换为 MBR 分区并重试。

ClientError: Footers not identical (ClientError: 页脚不同)

您尝试导入差异 VHD,或在创建 VHD 时出错。重新导出您的 VM,然后将其重新导入 Amazon EC2。

ClientError: Uncompressed data has an invalid length

VMDK 文件已损坏。您可以尝试修复或重新创建 VMDK 文件,或使用其他的文件。

ERROR: Bucket <MyBucketName> is not in the <RegionName> Region, it's in <RegionName>

Amazon Simple Storage Service(Amazon S3)存储桶与您想要导入的实例不在同一个 Amazon Web Services 区域。请尝试添加 --ignore-region-affinity 选项,它将忽略存储桶的区域是否与创建导入任务的区域相符。您也可以使用 Amazon Simple Storage Service 控制台创建 S3 存储桶并将区域设置为想要导入虚拟机的区域。再次运行命令并指定您刚创建的新存储桶。

ERROR: File uses unsupported compression algorithm 0

使用 OVA 格式而非 OVF 格式创建 VMDK。以 OVF 格式创建 VMDK。

S3 源位置无效

命令语法或 S3 存储桶名称不正确。请在仅用于 VM Import 的合适区域中创建 S3 存储桶,然后将虚拟机文件上传到该存储桶的根。

给定的 S3 存储桶不在该区域本地

用于 VM Import 的 S3 存储桶必须与想要导入的虚拟机位于同一 Amazon Web Services 区域。

ClientError:未知操作系统/缺少操作系统文件

无法识别操作系统。确认您的操作系统已在 VM Import/ExportVM Import/Export 的资源导入要求 中列为支持。

VM Export 错误

Client.UnsupportedOperation: This instance has multiple volumes attached。请删除额外的卷。

分离根卷以外的卷并重试。如果您需要这些卷上的数据,可以将它们复制到根卷,或将这些卷导入到 Amazon EBS 中。

Client.NotExportable:此实例无法导出。(Service: AmazonEC2; Status Code: 400; Error Code: NotExportable; Request ID: <RequestID>)

您只能导出某些实例。有关更多信息,请参阅 实例导出的注意事项

Error starting instances: Invalid value <instance ID> for instanceId。Instance does not have a volume attached at root (/dev/sda1)。

您尝试在 VM Import 过程和所有转换任务完成之前启动实例。请等待 VM Import 过程和所有转换任务全部完成后再启动实例。

调用 CreateInstanceExportTask 操作时出现错误(参数无效):给定的 S3 对象不是该区域的本地对象。

EC2 实例和 S3 存储桶必须位于同一 Amazon Web Services 区域。您还必须确保该create-instance-export-task命令在与导出资源的同一区域中运行。您可以使用 --region 参数指定区域。有关更多信息,请参阅Amazon Command Line Interface《用户指南》Amazon CLI支持的全局命令行选项

Windows VM 错误

ClientError:Booter 联网故障/实例不可访问。请在安装 .Net framework 3.5 SP1 或更高版本后重试。

EC2 Config 服务需要 Microsoft .NET Framework 3.5 Service Pack 1 或更高版本。请在您的 Windows VM 上安装 Microsoft .NET Framework 3.5 Service Pack 1 或更高版本并重试。

FirstBootFailure:该导入请求失败的原因是 Windows 实例启动和建立网络连接失败。

当您收到 FirstBootFailure 错误消息时,意味着您的虚拟磁盘映像无法执行以下步骤之一:

  • 启动并开始 Windows。

  • 安装 Amazon EC2 联网和磁盘驱动程序。

  • 使用一个 Dhcp 配置的网络接口接收 IP 地址。

  • 使用 Amazon EC2 Windows 批量许可激活 Windows。

以下最佳实践可帮助您避免 Windows 首次启动失败:

  • 禁用防病毒和反间谍软件及防火墙 — 这些类型的软件可能会阻止安装新的 Windows 服务或驱动程序,或阻止运行未知的二进制文件。软件和防火墙可在导入后重新启用。

  • 不要强化您的操作系统 — 安全配置(有时称为强化)可能会阻止自动安装 Amazon EC2 驱动程序。还有其他 Windows 配置设置可防止导入。这些设置可在导入时重新使用。

  • 禁用或删除多个可启动的分区 — 如果您的虚拟机启动并需要您选择使用的启动分区,导入可能会失败。

虚拟磁盘映像无法启动和建立网络连接可能是由于以下任一原因:

TCP/IP 网络和 DHCP 未启用

原因:必须启用 TCP/IP 联网和 DHCP。

解决:确保 TCP/IP 网络已启用。有关更多信息,请参阅 Microsoft 支持网站上的更改 TCP/IP 设置 。确认 DHCP 已启用。有关更多信息,请参阅 Microsoft 网站上的动态主机配置协议 (DHCP)

Hyper-V 服务器角色已安装

原因:不支持导入安装了 Hyper-V 角色的虚拟机。

解决方案:从虚拟机中移除 Hyper-V 角色,然后重试导入。

虚拟机上丢失了 Windows 需要的卷

原因:将 VM 导入 Amazon EC2 时只导入启动盘,必须断开所有其他磁盘,而且在导入虚拟机前 Windows 必须能够启动。例如,Active Directory 通常会将 Active Directory 数据库存储在 D:\ 驱动器上。如果 Active Directory 数据库丢失或无法访问时,域控制器无法启动。

解决:在导出前,断开所有连接到 Windows VM 的二级和网络磁盘。将所有 Active Directory 数据库从辅助驱动或分区移至主要 Windows 分区。有关更多信息,请参阅 Microsoft Support 网站上的启动基于 Windows 或基于 SBS 的域控制器时出现“Directory Services cannot start”(目录服务无法启动)错误消息

Windows 始终启动到 System Recovery Options

原因:Windows 可以出于多种原因启动到 System Recovery Options,包括将 Windows 从物理计算机推送至虚拟环境,也称为物理到虚拟 (P2V) 转换过程。

解决:在导出或准备导入之前,确保 Windows 启动到登录提示。不要导入来自物理设备的虚拟 Windows 实例。

虚拟机是利用 physical-to-virtual (P2V) 转换过程被创建的

原因:如果在物理计算机上执行 Windows 安装过程,然后将 Windows 安装的副本导入 VM,从而创建磁盘映像,则会发生 P2V 转换。VM Import/Export 不支持作为 P2V 转换的结果而创建的 VM。VM Import/Export 仅支持在源 VM 内本地安装的 Windows 映像。

解决:在虚拟化环境中安装 Windows,将安装的软件迁移至新的 VM。

Windows 激活失败

原因:在启动过程中,Windows 将检测硬件更改并尝试激活。在导入进程中,我们尝试将 Windows 中的授权机制转换为 Amazon Web Services 提供的批量许可。但是,如果 Windows 激活过程失败,那么导入也会失败。

解决措施:确保要导入的 Windows 版本支持批量许可。Windows 测试版或预览版可能不会。

未找到可启动的分区

原因:在虚拟机的导入过程中,未能找到启动分区。

解决措施:确保要导入的磁盘有启动分区。

Linux VM 错误

ClientError: Invalid configuration - Could not read fstab

不支持带有两个引导卷或多个 /etc 目录的 Linux 虚拟机。

ClientError:已找到 BLSC 样式的 GRUB,但无法检测到默认内核

VM Import/Export 无法检测到默认内核。当它被移出主grub.cfg文件时,可能会发生这种情况。您可以将配置设置为 $saved_entry 并确保 grubenv 默认包含 bootloader 条目。

ClientError:我们无法读取您导入的 initramfs/initrd 来确定您的导入需要哪些驱动程序才能在 EC2 中运行

在导入您的 Linux 虚拟机以使其准备在 Amazon EC2 中作为实例运行时,我们无法读取所需的文件。您可以使用此 lsinitramfs 命令来验证文件的完整性。例如,您可以使用以下 命令:

lsinitramfs /boot/initrd.img-5.4.0-77-generic 2>&1 | less

如果输出中返回错误,则可以尝试重建 initramfs 文件以解决问题,然后再次导入 VM。

ClientError: Unsupported configuration - Logical volume group activation failed (ClientError: 配置不受支持 - 逻辑卷组激活失败)

未能激活虚拟磁盘映像上的逻辑卷。这可能表示文件或磁盘损坏。验证上传的磁盘映像文件。

ClientError: Unsupported configuration - Multiple directories found (ClientError: 配置不受支持 - 找到了多个目录)

不支持带有多个引导卷或多个 /etc 目录的 Linux VM。

ClientError:不支持的内核版本

操作系统使用的内核版本不受支持。确认您的导入符合操作系统列出的要求。有关更多信息,请参阅 VM Import/Export 支持的操作系统

请求的实例不支持 Linux

可以将 Linux VM 导入为特定的实例类型。请使用以下支持的实例类型并重试。

  • 通用型:t2.micro |t2.small |t2.medium |m3.medium |m3.large |m3.xlarge |m3.2xlarge

  • 计算优化型:c3.large | c3.xlarge | c3.2xlarge | c3.4xlarge | c3.8xlarge | cc1.4xlarge | cc2.8xlarge

  • 内存优化:r3.large | r3.xlarge | r3.2xlarge | r3.4xlarge | r3.8xlarge | cr1.8xlarge

  • 存储优化型:i2.xlarge |i2.2xlarge |i2.4xlarge |i2.8xlarge |hi1.4xlarge |hi1.8xlarge