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:
- Luncurkan instance EC2 dengan Amazon Linux 2011.09 64-bit AMI
dd
isi volume EBSssh
ke file gambar lokal.- Pasang file gambar sebagai perangkat loopback dan kemudian ke titik pemasangan lokal.
- Buat file gambar disk kosong baru, partisi dengan offset untuk bootloader, dan buat sistem file ext4.
- Pasang partisi gambar baru dan salin semuanya dari gambar EC2.
- Instal grub (menggunakan
grub-legacy-ec2
paket Ubuntu , bukan grub2). - Konversi file gambar ke vmdk menggunakan
qemu-img
. - 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.lst
untuk 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?