将EC2 AMI转换为vmdk映像

我已经非常接近让亚马逊Linux在VirtualBox内启动,感谢这个答案和这些 网站 。 快速浏览我已经采取的步骤:

  1. 使用Amazon Linux 2011.09 64位AMI启动EC2实例
  2. dd通过ssh将EBS卷的内容添加到本地映像文件。
  3. 将映像文件安装为环回设备,然后安装到本地安装点。
  4. 创build一个新的空磁盘映像文件,一个带有偏移量的分区,并创build一个ext4文件系统。
  5. 安装新映像的分区,并复制EC2映像中的所有内容。
  6. 安装grub(使用Ubuntu的grub-legacy-ec2软件包,而不是grub2)。
  7. 使用qemu-img将映像文件转换为vmdk。
  8. 使用vmdk创build一个新的VirtualBox虚拟机

现在VM启动,grub加载,并find内核。 但是当它试图挂载根设备时会失败:

 dracut Warning: No root device "block:/dev/xvda1" found dracut Warning: Boot has failed. To debug this issue add "rdshell" to the kernel command line. dracut Warning: Signal caught! dracut Warning: Boot has failed. To debug this issue add "rdshell" to the kernel command line. Kernel panic - not syncing: Attempted to kill init! Pid: 1, comm: init Not tainted 2.6.35.14-107.1.39.amzn1.x86_64 #1 

我已经尝试更改/boot/grub/menu.lst通过标签和UUID查找根设备,但没有任何工作。 我猜测xen内核与VirtualBox不兼容。

所有这些努力背后的原因是制作一个尽可能接近生产环境的stream浪箱,所以部署可以在本地进行testing。 我知道在EC2上进行testing是很便宜的,但连接不好经常会导致经验的损失。 另外,将虚拟机与生产环境配合使用,让同事不必在阳光下安装所有东西,就可以启动和运行应用程序开发。

如果我试着运行一个不同的内核,我可以使用哪种内核尽可能地接近Amazon Linux 2011.09?

我尝试了这么多,我放弃了,但最终我成功了!

我已经设法使用在vmware下移植的Amazon Linux AMI进行引导!

我几乎是一个新手,但是经过几个小时的testing,我用一个从ubuntu 64 10.04发行版中取得的vmlinuz-2.6.32-38-generic取代了原版的亚马逊内核

我只是得到了很多错误,因为AMI内的亚马逊configuration正在寻找内部地址,显然它找不到。 这是/ usr / bin / cloud-init,我想。

但我可以login,似乎一切正常!

谢谢你的帮助!!

我已经写下了这篇博文,分步说明了如何从AMI迁移到Vmware。

希望这可以帮助!

亚马逊的官方内核在2011.09发行版中推出了它们, 2.6.35.14。

你可以用get_reference_source获得Amazon的源码包,但是我不希望它能在Amazon以外的地方工作。

Cloudify上的人们已经分享了他们如何创build一个VirtualBox就绪的Vagrant盒子,而无需访问裸机 – 他们使用AWS。

走向天堂的9个步骤:

  • 使用Packer创build源图像(AMI)。
  • 在AWS中使用快照或源映像作为其中的一个磁盘启动工作者实例。
  • 在工作者图像上:创build一个原始的图像卷作为一个文件,并创build一个ext4分区。
  • 将数据从源映像磁盘复制到先前创build的ext4分区。
  • 在ext4分区上安装bootloader(extlinux)。
  • 将原始图像转换为VMDK。
  • 使用OVF描述符和Vagrant元数据捆绑VMDK,并创build一个带有内容和.box扩展名的tar文件。
  • 上传到S3 [或任何你喜欢的]。
  • 清理。

资料来源 :博客文章http://www.developer.com/design/creating-a-reproducible-and-portable-development-environment.html上述9个步骤

代码 : https : //github.com/cloudify-cosmo/cloudify-packager/tree/3.2m4/image-builder