有没有办法将 AMI 或其副本附加到实例?这将是一个免费的公共 Linux AMI。一个例子是 Ubuntu 12.04 LTS AMI。但我也不想仅限于那一个(因此,在其他地方复制它虽然很好,但并不是答案)。特别是,我试图避免制作正在运行或已经运行的副本。
然后测试将制作快照,并将其注册为 AMI,这将是一个精确的副本。我的目的是修改副本(作为我自己的卷)。但如果它最初是根设备,我的修改将不起作用(因为更改的转换会导致崩溃)。
答案1
您能看到 AMI 的源文件系统吗? 看不到、可能看到、可以看到:
不:大多数公共 AMI 不会使源 EBS 快照公开可读,因此如果不运行 AMI 实例,您就无法查看其内容。
或许:您可以尝试运行 AMI 的一个实例,然后在它处于“待处理”状态时立即“停止”它,希望它在操作系统开始启动之前进入“已停止”状态。从该实例分离根 EBS 卷并将其附加到另一个实例以查看文件系统。此方法不能用于 AWS Marketplace 中的 AMI,因为它们受到特殊保护。
是的:一些发布 AMI 的公司还会发布用于创建 AMI 的文件系统映像的副本。例如,用于创建 Ubuntu AMI 的文件系统由 Canonical 在此处发布:
您可以在此处下载所引用的 Ubuntu 12.04 LTS Precise 映像:
http://cloud-images.ubuntu.com/precise/current/precise-server-cloudimg-amd64.tar.gz
这可以用来使用您描述的方法创建新的 AMI。
答案2
如果您使用 EBS 支持的 AMI,这是可能的。使用 S3 支持也有可能,但可能需要更多挖掘。
使用要复制的 AMI 启动一个新实例。这将创建一个新的 ~8GB EBS 卷作为根设备。
停止这个新实例(不是终止)
从刚刚停止的实例中分离根 EBS 驱动器 (/dev/sda1)。
将其附加到另一个实例(如常规 EBS 驱动器)。按您的意愿操作。
对驱动器进行快照。
使用 AWS 控制台将快照转换为 AMI。