AMI内核ID与EC2实例中安装的内核有什么关系?

根据我的理解,AWS EC2使用Xen作为基础技术,Xen虚拟机加载EC2的AMI内核来启动实例。

因此,在EC2实例中,我升级内核版本(例如,从3.10升级到3.14),然后重新引导并使用uname -a确认新内核(3.14)正在运行。

尽pipe已经发生了内核升级,但是EC2实例仍然与较低内核版本的原始AMI相关联。

我的问题是:

  • EC2的Xen基金会使用新内核来启动实例吗?
  • 如果不操作实例的AMI,是否可以使用升级提供的新内核function(如新的系统调用)?

这可能会部分回答你的问题。 创建实例时,可以选择内核ID如下:

在这里输入图像描述

如果你没有选择一个不同的内核,它将会在上面的屏幕截图中显示默认的内核ID。

EC2的Xen基金会使用新内核来启动实例吗?

不,不。 它引导我们与实例相关的内核,即aki-xxxxxxxx。 它基本上忽视了任何可能在你的根卷的/ boot目录中的东西。 这种行为与将内核映像放在单独的分区上并没有太大区别,并且始终从该分区启动内核。 (例如,我在Chromebook上启动Ubuntu时执行此操作)

如果不操作实例的AMI,是否可以使用升级提供的新内核功能(如新的系统调用)?

没有。一旦你的内核启动了aki-xxxxxxxx内核,它就可以使用这个内核的特性和系统调用。 尽管大多数功能和系统调用都可用,因为特定的aki-xxxxxxxx内核需要与您的特定实例兼容。 所以对于Ubuntu 12.04 LTS,你可能想要使用内核3.2或更高版本,因为2.6内核将无法工作。

另外,这也意味着当选择aki-xxxxxxxx内核时,您需要小心,选择一个与您的特定操作系统兼容的内核。

如果你想使用自己的内核,你应该看看PV-GRUB: http : //docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedcoreels.html