我已经非常接近让亚马逊Linux在VirtualBox内启动,感谢这个答案和这些 网站 。 快速浏览我已经采取的步骤:
dd通过ssh将EBS卷的内容添加到本地映像文件。 grub-legacy-ec2软件包,而不是grub2)。 qemu-img将映像文件转换为vmdk。 现在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个步骤:
代码 : https : //github.com/cloudify-cosmo/cloudify-packager/tree/3.2m4/image-builder