我有一个运行Ubuntu 12.04 32位AMI的EC2实例(可在第一页中find用于启动新实例的经典向导)。 根设备是一个EBS卷。 然后我遵循这些步骤:
在向导的第三步中,我注意到这行为“存储设备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折:
你得到的错误提示你的文件系统比内核支持的文件系统更新(最有可能是只支持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就像一个魅力。