

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

# VMs 通过虚拟机导入/导出所做的编程修改
<a name="import-modify-vm"></a>

使用 `ImportImage` API 导入虚拟机时， AWS 修改文件系统并添加驱动程序以使导入的虚拟机可启动。写入修改后的文件时， AWS 会使用新名称将原始文件保留在同一位置。可以进行以下操作：

**General**
+ 为了与提供的映像保持 AWS一致， AWS Systems Manager 客户机安装在虚拟机上。

**Windows**
+ 修改注册表设置以使 VM 可启动。

**Linux**
+ 在 OS 中直接安装 Citrix PV 驱动程序或修改 initrd/initramfs 以包含它们。
+ 修改网络脚本以将静态脚本替换 IPs 为动态 IPs。
+ 修改`/etc/fstab`、注释掉无效条目并将设备名称替换为 UUIDs。如果找不到设备的匹配 UUID，会在设备描述中添加 `nofail` 选项。导入后，我们必须更正设备名称并删除 `nofail`。作为准备导入时的最佳实践，我们建议您使用 UUID 而不是设备名称来指定虚拟机磁盘设备。 VMs 

  `/etc/fstab` 中包含非标准文件系统类型（cifs、smbfs、vboxsf、sshfs 等）的条目将被禁用。
+ 修改默认条目和超时等 GRUB 启动加载程序设置。

## 导入 VM 而不做任何修改
<a name="import-without-modifications"></a>

如果您需要在不进行编程修改的情况下导入 VM，我们建议您按照以下步骤进行操作，而不是使用 `ImportImage`。

**重要**  
如果您使用此过程，则 AWS 不会进行任何导入后验证以确保映像可启动。您有责任确保正确准备用于导出的 VM。

**导入 VM 而不做任何修改**

1. 准备用于导出的 VM 。有关更多信息，请参阅 [要 VMs 从虚拟化环境中导出的配置](prepare-vm-image.md)。

1. 以以下文件格式之一导出 VM 的启动磁盘：VHD/VHDX、VMDK 或原始格式。有关更多信息，请参阅您的虚拟化环境的文档。

1. 请使用 [put-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/put-object.html) 命令将导出的启动磁盘文件上传到要创建映像的区域的 Amazon S3 存储桶。

1. 请使用 [import-snapshot](https://docs.aws.amazon.com/cli/latest/reference/ec2/import-snapshot.html) 命令将启动磁盘作为快照导入。有关导入快照的更多信息，请参阅 [使用 VM Import/Export 将磁盘作为 EBS 快照导入](vmimport-import-snapshot.md)。
**注意**  
您可以使用[ describe-import-snapshot-tasks](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-import-snapshot-tasks.html)命令监控导入快照任务的进度。

   记下该命令返回的快照 ID。下一步中您将需要使用该值。

1. 请使用 [register-image](https://docs.aws.amazon.com/cli/latest/reference/ec2/register-image.html) 命令注册新的 AMI，并将上一步中的快照指定为根设备卷。

   记下该命令返回的映像 ID。下一步中您将需要使用该值。

1. 在 AMI 达到 `available` 状态后，您可以使用它启动实例。