AWS:如何从临时映像或文件树创建 EBS AMI?

AWS:如何从临时映像或文件树创建 EBS AMI?

我在一个目录中有一个文件树。它用于在硬盘和闪存驱动器上构建可启动系统。我还用它来为虚拟机构建映像。我想用它制作一个 AWS AMI(以及使其适合云的任何调整,例如 cloud-init 内容)。现在,我正在探索如何制作 EBS 支持的 AMI。我发现的所有文档和已回答的问题都集中在构建 AMI 的其他方法上,并涉及使用现有 AMI,或启动实例并保存处于运行状态的内容。但我想根据我的系统设置从头开始制作一些东西。

根据我从 AWS 文档中了解到的信息,我设想了几种方法来实现这一点(实际上没有一种方法可以满足需求)。在这两种情况下,我都会创建一个新卷并将其附加到运行任意 Linux AMI 的实例。在方法 A 中,在该实例中,我使用 ext4 格式化卷,将其挂载为 /mnt/xvdf,然后运行 ​​rsync 将我的系统文件树上传到卷本身,然后卸载它。在方法 B 中,我在家用机器上创建一个环回文件,对其进行格式化、挂载、从系统树中填充它、卸载它,并将映像文件传输到附加了卷的实例,然后将映像复制到卷设备,就像 dd 一样。在这两种情况下,我最终都会在卷上得到一个文件系统,就像我在硬盘驱动器、闪存驱动器和 VM 映像文件(原始)上拥有的一样。

然后我制作该卷的快照并将其注册为 AMI。但是它不起作用。从实例日志中获取的错误是内核崩溃,因为无法挂载文件系统类型(具有不受支持的功能)。

我是否基本上按照正确的过程进行操作,而只是犯了一个错误(例如格式化它不喜欢的文件系统类型...我正在使用 ext4)?

或者我做错了?它确实进展得足够快,让我注册了 AMI,并从中启动了一个实例。

我确信我需要对文件树进行许多调整才能使其在云环境中正常工作。我会学习这些调整是什么。但目前还不足以考虑我的文件是否正确。

请不要建议我尝试制作 S3 支持的 AMI 或从正在运行的实例制作 AMI。我确实计划在学习所有内容的过程中尝试这些方法,但那是以后的事了。这是现在,目标是从未启动的临时映像/树(在其他地方有效)制作 AMI。

相关内容