从EBS快照启动新的EC2实例的正确过程

我有一个运行Ubuntu 12.04 32位AMI的EC2实例(可在第一页中find用于启动新实例的经典向导)。 根设备是一个EBS卷。 然后我遵循这些步骤:

  • 停止服务器
  • 右键单击“卷”选项卡 – >“创build快照
  • 右键单击“快照”选项卡中的“快照” – >“从此快照创build映像”
  • 从AMI选项卡,我右键单击新创build的AMI并select“启动实例”

在向导的第三步中,我注意到这行为“存储设备configuration”

Root /dev/sda1 snap-xxxxxx 8GiB standard true 

这似乎表明它正在使用快照作为新实例的根卷(实际上是唯一的卷)。

然后我启动实例。 但是,在“初始化”步骤中,它没有通过“状态检查”。 如果我右键单击实例和“获取系统日志”,这是日志的尾部:

 Using IPI No-Shortcut mode XENBUS: Timeout connecting to devices! md: Autodetecting RAID arrays. md: autorun ... md: ... autorun DONE. EXT3-fs: sda1: couldn't mount because of unsupported optional features (240). EXT2-fs: sda1: couldn't mount because of unsupported optional features (244). Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(8,1) 

我在这里做错了什么? 我关心的是2折:

  • 如果我无法从快照启动,这会使快照实用程序更加有用
  • 如果我无法通过快照创buildAMI来创build新实例,这不仅会降低快照的实用性,还会让我们想知道如何轻松“复制”实例。

你得到的错误提示你的文件系统比内核支持的文件系统更新(最有可能是只支持ext2 / 3的内核上的ext4)。 一些AMI依赖于非标准的AKI(Amazon Kernel Image)来提供某些function。

在这种情况下,您所遵循的程序似乎是正确的,因此,如果与收到的错误相结合,AKI很可能不匹配。 检查原始实例使用的AKI,并将其与新实例的AKI进行比较。 如果不匹配,请在启动时明确指定AKI。 (您也可以手动创buildAMI,并在此时指定AKI,以便在启动时指定)。

另外,更好的AMIdevise将使用PV-GRUB作为引导加载程序从AMI本身加载内核(而不是需要特定的外部AKI),这简化了内核保持最新的过程。 用户提供的内核的AWS文档值得一读,如果你想在你的AMI中实现这一点。

因为你特别提到Ubuntu,这个工具可能对你有帮助:

我也遇到了同样的情况,使用上述工具为操作系统版本和体系结构select正确的AKI就像一个魅力。