当我尝试将 FreeBSD 捆绑的 OVA 导入其中时,我遇到了类似的问题。根据先决条件/清单,Amazon 尚不支持 FreeBSD 的 vmimporting。这会产生“无有效分区”。
此外,如果您使用 LUKS 加密分区,它也会对我产生同样的错误 (Ubuntu)。
对于“不支持的内核版本”,这是我对同一错误的输出:
c:\Users\XXXXX\Documents>aws ec2 describe-import-image-tasks --import-task-ids "import-ami-fgacu4yu"
{
"ImportImageTasks": [
{
"Status": "deleted",
"SnapshotDetails": [
{
"UserBucket": {
"S3Bucket": "myautomationbucket",
"S3Key": "ubuntu14.04-patched.ova"
},
"DiskImageSize": 843476480.0,
"Format": "VMDK"
}
],
"Description": "Optimus Custom Ubuntu14.04",
"StatusMessage": "ClientError: Unsupported kernel version 4.2.0-36-generic",
"ImportTaskId": "import-ami-XXXXXXXX"
}
]
}
根据 AWS,他们发布了一个已知良好内核的列表,但是对于我最喜欢的风格 Ubuntu,它们并不冗长。
http://docs.amazonaws.cn/en_us/AWSEC2/latest/WindowsGuide/VMImportPrerequisites.html
所以我所做的就是将内核降级为可接受的内核。
我了解了如何通过在我的 EC2 中现有的、已知良好运行的实例上执行此命令来获得“可接受”的内容:
c:\Users\XXXXXX\Documents>aws ec2 describe-instance-attribute --instance-id i-12345678 --attribute kernel --region us-east-1
{
"InstanceId": "i-12345678",
"KernelId": {
"Value": "aki-825ea7eb"
}
}
所以这个 aki-824ea7eb 是受支持的内核 ID。这不是很有帮助,所以经过一些研究后,我意识到由于现有平台的限制,AWS 可能只有一个受支持的内核列表——你知道,它们没有运行 ESXi。 ;)
我已经搜索并发现这很有用,并按照 13.04 https://www.linode.com/docs/tools-reference/custom-kernels-distros/run-a-distributionsupplied-kernel-with-pvgrub 的说明进行操作
我执行了 1,2,3,4,但我跳过了步骤 5,6,7,8...执行了 9 和 15。
然后当我在我的虚拟机上执行它们,将虚拟机重新打包到一个 OVA 并运行我的 vmimport 时,它成功地导入了一个实例。
希望这会有所帮助。