我正在尝试在 Amazon 上导入具有最新稳定内核的 Centos 7.6-1810 VM,但导入过程失败并出现以下错误:
$ aws ec2 describe-import-image-tasks
{
"Status": "deleted",
"SnapshotDetails": [
{
"Status": "completed",
"UserBucket": {
"S3Bucket": "my-bucket",
"S3Key": "packer-import-xxxxxxx.ova"
},
"DiskImageSize": 1576340992.0,
"Format": "VMDK"
}
],
"StatusMessage": "ClientError: Unsupported kernel version 5.0.8-1.el7.elrepo.x86_64",
"ImportTaskId": "import-ami-xxxxxxxxx"
}
我知道VM 导入/导出要求,但关于 CentOS 支持的内核版本并不那么清楚:
以下操作系统可以导入到 Amazon EC2 并从 Amazon EC2 导出:
- Red Hat Enterprise Linux (RHEL) 5.1-5.11、6.1-6.9、7.0-7.6(6.0 缺少所需的驱动程序)
- CentOS 5.1-5.11、6.1-6.6、7.0-7.6(6.0 缺少所需的驱动程序)
导入的 Linux VM 应使用默认内核以获得最佳效果。使用自定义 Linux 内核的 VM 可能无法成功迁移。
我的问题是:
- 亚马逊如何在虚拟机导入过程中识别内核版本?
- 我可以假设仅支持默认的 CentOS 内核版本吗?或者问题是我正在使用 Elrepo 内核包?
- 有没有办法解决这个问题并至少使用
3.16.65
长期内核版本?(其中包含最新的安全修复程序)。
答案1
多年来,AWS 一直没有提供完整的可接受内核列表。尽管特定可接受的发行版次要版本作为先决条件。因此它可能无法理解内核不是 3.10 的 RHEL 7 实例。参见 2016 年左右的 Server Fault:哪些 Linux 内核版本适合将 AMI 导入 Amazon Web Services?
删除第三方内核,并在导入后将其添加回来。
这只是猜测,但检查磁盘映像上的文件系统并不困难。发行版使用可预测的文件名存储其引导加载程序和内核。