是的,我意识到这与拉动电源和打开机器是一样的,但我想测试数据在快照中的可靠性以便进行恢复.
我尝试使用Web控制台,命令行工具和ruby sdk从我们的Windows启动驱动器(EBS)的快照创建AMI映像 – 它们都创建了一个AMI,将平台显示为Linux而不是Windows和半虚拟化虚拟化hvm.从这个AMI创建的新EC2实例无法上线,我认为它崩溃是因为它在错误的虚拟化平台上运行.
在我所做的所有谷歌搜索中,我只遇到过Linux指令,或者从实例支持的EC2实例制作Windows EBS的说明 – 不是EBS支持的实例或快照.
Launching an Instance from a Snapshot不适用于Windows AMI(因为您有meanwhile discovered yourself):
Important
Registering a snapshot works only for Linux/UNIX AMIs;
although you can register a snapshot to create a Windows AMI,the AMI
isn’t launchable. [emphasis mine]
替代
虽然未指定,但应该知道如Creating an Image from a Running Instance所述简单克隆Amazon EBS-Backed Instance的可能性 – 当通过AWS管理控制台执行此操作时,EC2会尝试在创建映像之前干净地关闭实例,然后重新启动实例.这显然是首选,但是,如果需要,可以通过命令行避免:
If you prefer the instance not be rebooted,you can use the Amazon EC2
command line tools to create the image […]. The 07004 command has a –no-reboot option.
解
上面提到的替代方法显然无助于从指定的其中一个快照创建一个新的EC2实例 – 无论如何都要注意一个有用的解决方案,请参阅移动到Eric Hammond的文章Move a Running EBS Boot Instance to New Hardware on Amazon EC2的新实例(其中有一个不同的用例,但无论如何适用)并归结为您的情况下的这些步骤:
>使用与原始实例相同的启动参数创建新实例.
>等待新实例运行,然后停止(不终止)它.
>从新实例中分离EBS启动卷并删除此分离卷,因为不再需要它.
>从快照创建新卷并将其附加到新实例.
>重新启动新实例,该实例现在将使用从快照创建的卷启动.
Colin Percival已经使用这种技术来运行FreeBSD on EC2 via defenestration以及btw. (其中包括对虚拟化问题的一些提示):
EC2 Windows instances,on the other hand,are launched in HVM (Hardware Virtual Machine) mode — which FreeBSD supports very well. If we can somehow trick EC2 into launching FreeBSD the same way as it launches Windows,we can run FreeBSD on a wide range of instance types. How can we trick EC2? Take advantage of the fact that Elastic Block Store disks can be detached from EC2 instances and reattached to different instances,and replace the boot disk of a “Windows” instance with a disk containing FreeBSD.