Mengubah EC2 AMI ke vmdk image

18

Saya sudah hampir mendapatkan Amazon Linux untuk boot di dalam VirtualBox, berkat jawaban ini dan situs web ini . Ikhtisar singkat langkah-langkah yang telah saya ambil:

  1. Luncurkan instance EC2 dengan Amazon Linux 2011.09 64-bit AMI
  2. ddisi volume EBS sshke file gambar lokal.
  3. Pasang file gambar sebagai perangkat loopback dan kemudian ke titik pemasangan lokal.
  4. Buat file gambar disk kosong baru, partisi dengan offset untuk bootloader, dan buat sistem file ext4.
  5. Pasang partisi gambar baru dan salin semuanya dari gambar EC2.
  6. Instal grub (menggunakan grub-legacy-ec2paket Ubuntu , bukan grub2).
  7. Konversi file gambar ke vmdk menggunakan qemu-img.
  8. Buat VM VirtualBox baru dengan vmdk.

Sekarang VM melakukan boot, grub memuat, dan kernel ditemukan. Tetapi gagal ketika mencoba me-mount perangkat root:

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

Saya telah mencoba mengubah /boot/grub/menu.lstuntuk menemukan perangkat root dengan label dan UUID, tetapi tidak ada yang berhasil. Saya menduga kernel xen tidak kompatibel dengan VirtualBox.

Alasan di balik semua upaya ini adalah untuk membuat kotak Vagrant yang sedekat mungkin dengan lingkungan produksi, sehingga penyebaran dapat diuji secara lokal. Saya tahu ini murah untuk melakukan tes berjalan pada EC2, tetapi konektivitas yang buruk sering merusak pengalaman. Plus itu akan sangat bagus untuk memiliki mesin virtual dengan lingkungan produksi sehingga rekan kerja tidak harus menginstal semuanya di bawah matahari hanya untuk bangun dan berjalan dengan pengembangan aplikasi.

Jika saya mencoba menjalankan kernel yang berbeda, kernel apa yang bisa saya dapatkan sedekat mungkin dengan Amazon Linux 2011.09?

Reed G. Law
sumber
Sedang melakukan pekerjaan yang mirip dengan Anda dan menemukan solusi pada tautan lain .. berbagi dengan Anda juga. Menguji ini dan berhasil untuk saya ... blog.zorangagic.com/2015/03/
Pratap

Jawaban:

7

Saya telah mencoba begitu banyak dan saya menyerah, tetapi pada akhirnya saya berhasil!

Saya sudah berhasil boot dengan Amazon Linux AMI porting di bawah vmware!

Saya hampir baru, tetapi saya melakukannya, setelah berjam-jam percobaan, mengganti kernel amazon asli dengan vmlinuz-2.6.32-38-generik yang diambil dari distro ubuntu 64 10.04.

Saya hanya mendapatkan banyak kesalahan karena konfigurasi amazon di dalam AMI sedang mencari sesuatu di alamat internal yang jelas tidak ditemukan. Itu adalah / usr / bin / cloud-init, saya pikir.

Tapi saya bisa masuk ke dalam, dan sepertinya semuanya berfungsi!

Terima kasih atas bantuan Anda!!

Saya telah menulis posting blog ini dengan petunjuk langkah demi langkah untuk bermigrasi dari AMI ke Vmware.

Semoga ini membantu!

Emanuele Preda
sumber
BTW, Reed, saya tiba tepat pada titik yang Anda nyatakan (dracut mengatakan "tidak ada perangkat root yang ditemukan" ... apakah Anda bergerak lebih jauh ??
Emanuele Preda
Saya datang pada dasarnya solusi yang sama yang Anda lakukan: menyalin kernel dari Ubuntu. Ini bekerja, tetapi pada saat itu saya tidak tahu seberapa mirip sistem akan bekerja dengan Amazon Linux AMI.
Reed G. Law
Silakan juga lihat jawaban saya di sini , yang menyediakan 2 metode alternatif yang diperbarui untuk mengekspor ke VirtualBox / VMWare VMDK, serta petunjuk tentang cara menggunakan VMDK Anda yang baru dibuat dengan Vagrant
Code Bling
2

Kernel resmi Amazon mendapatkan mereka dalam distribusi 2011.09 mereka, yaitu 2.6.35.14.

Anda mungkin bisa mendapatkan paket sumber untuk satu Amazon dengan get_reference_source, tapi saya tidak berharap itu berfungsi di luar Amazon.

Pierre Carrier
sumber
1

Orang-orang di Cloudify telah berbagi bagaimana mereka membuat kotak Vagrant siap VirtualBox, tanpa akses ke mesin logam telanjang - mereka menggunakan AWS.

9 langkah ke surga:

  • Buat gambar sumber (AMI) [...] menggunakan Packer.
  • Luncurkan instance pekerja di AWS dengan snapshot atau gambar sumber sebagai salah satu disk-nya.
  • Pada gambar pekerja: Buat volume gambar mentah sebagai file dan buat partisi ext4 di atasnya.
  • Salin data dari disk gambar sumber ke partisi ext4 yang dibuat sebelumnya.
  • Instal bootloader (extlinux) di partisi ext4.
  • Konversi gambar mentah menjadi VMDK.
  • Bundel VMDK menggunakan deskriptor OVF dan metadata Vagrant dan buat file tar dengan konten dan ekstensi .box.
  • Unggah ke S3 [atau apa pun yang Anda suka].
  • Membersihkan.

Sumber : Posting blog di http://www.developer.com/design/creating-a-reproducible-and-portable-development-environment.html dengan 9 langkah di atas

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

Fredrik Wendt
sumber