是否可以从现有的半虚拟(PV)AMI创建硬件虚拟机(HVM)AMI.
我最初的想法是启动一个新的PV实例并使用ec2-create-image命令创建一个新图像,同时将HVM指定为虚拟化类型.但是,ec2-create-image没有用于指定虚拟化类型的命令行参数.
还有另一种方法可以做到这一点吗?
解决方法
更新
AWS已在EC2 API中启用此功能.它在新的基于Boto的awscli中作为aws ec2 register-image
的–virtualization-type选项提供.
原始答案
是!不幸的是,没有直接的方法可以做到这一点.此外,某些PV实例可能需要内核和引导加载程序修改.
>从现有的PV AMI创建一个卷.如果它是您自己的PV AMI,您可以从快照创建一个卷.如果是第三方AMI,则需要启动实例并拍摄快照.
>使用任何AMI启动HVM实例.
>停止该HVM实例.
>从该实例中分离根卷.
>将PV卷作为根卷(/ dev / sda1或/ dev / sda(如果已分区))附加到HVM实例.
>在HVM实例上运行ec2-create-image.
>使用新的HVM AMI启动其他实例.
如果这不起作用,那么在第5步之前,您需要将该卷附加到正在运行的实例,设置chroot,并为您的发行版安装内核和引导加载程序.您可能还想清除日志和任何cloud-init缓存.