Amazon-Ec2

將 EC2 AMI 轉換為 vmdk 映像

  • September 2, 2015

多虧了這個答案這些 網站,我已經非常接近讓 Amazon Linux 在 VirtualBox 中啟動了。我已採取的步驟的快速概述:

  1. 使用 Amazon Linux 2011.09 64 位 AMI 啟動 EC2 實例
  2. dd將 EBS 卷的內容轉移ssh到本地映像文件。
  3. 將映像文件掛載為環回設備,然後掛載到本地掛載點。
  4. 創建一個新的空磁碟映像文件,使用引導載入程序的偏移量進行分區,並創建一個 ext4 文件系統。
  5. 掛載新映像的分區並從 EC2 映像複製所有內容。
  6. 安裝 grub(使用 Ubuntu 的grub-legacy-ec2軟體包,而不是 grub2)。
  7. 使用 . 將映像文件轉換為 vmdk qemu-img
  8. 使用 vmdk 創建一個新的 VirtualBox VM。

現在虛擬機啟動,grub 載入,核心被找到。但是當它嘗試掛載根設備時失敗:

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 不兼容。

所有這些努力背後的原因是製作一個盡可能接近生產環境的 Vagrant 盒子,以便可以在本地測試部署。我知道在 EC2 上進行測試執行很便宜,但連接性差往往會破壞體驗。另外,如果有一個帶有生產環境的虛擬機,那就太好了,這樣同事們就不必為了啟動和執行應用程序開發而在陽光下安裝所有東西。

如果我要嘗試執行不同的核心,我可以得到盡可能接近 Amazon Linux 2011.09 的核心?

我嘗試了這麼多,我正在放棄,但最後我成功了!

我已經設法使用在 vmware 下移植的 Amazon Linux AMI 啟動!

我幾乎是新手,但經過數小時的試驗,我做到了,用從 ubuntu 64 10.04 發行版中獲取的 vmlinuz-2.6.32-38-generic 替換了原始的 amazon 核心。

我只是收到很多錯誤,因為 AMI 內的亞馬遜配置正在尋找內部地址中顯然找不到的東西。我想是 /usr/bin/cloud-init。

但是我可以在裡面登錄,而且似乎一切正常!

謝謝你的幫助!!

我已經編寫了這篇博文,其中包含從 AMI 遷移到 Vmware 的分步說明。

希望這可以幫助!

引用自:https://serverfault.com/questions/374861