Me he acercado bastante a lograr que Amazon Linux se inicie dentro de VirtualBox, gracias a esta respuesta y a estos sitios web . Una descripción rápida de los pasos que he tomado:
- Inicie la instancia EC2 con Amazon Linux 2011.09 AMI de 64 bits
dd
el contenido del volumen EBSssh
a un archivo de imagen local.- Monte el archivo de imagen como un dispositivo de bucle invertido y luego en un punto de montaje local.
- Cree un nuevo archivo de imagen de disco vacío, particione con un desplazamiento para un gestor de arranque y cree un sistema de archivos ext4.
- Monte la partición de la nueva imagen y copie todo de la imagen EC2.
- Instale grub (usando el
grub-legacy-ec2
paquete de Ubuntu , no grub2). - Convierta el archivo de imagen a vmdk usando
qemu-img
. - Cree una nueva VM VirtualBox con el vmdk.
Ahora la VM arranca, se carga grub y se encuentra el kernel. Pero falla cuando intenta montar el dispositivo raíz:
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
He intentado cambiar /boot/grub/menu.lst
para encontrar el dispositivo raíz por etiqueta y UUID, pero nada funciona. Supongo que el kernel xen no es compatible con VirtualBox.
El razonamiento detrás de todo este esfuerzo es hacer una caja Vagrant que sea lo más cercana posible al entorno de producción, para que las implementaciones puedan probarse localmente. Sé que es barato hacer pruebas en EC2, pero la conectividad deficiente a menudo arruina la experiencia. Además, sería realmente bueno tener una máquina virtual con el entorno de producción para que los compañeros de trabajo no tengan que instalar todo bajo el sol solo para comenzar a trabajar con el desarrollo de aplicaciones.
Si intentara ejecutar un kernel diferente, ¿qué kernel podría obtener para estar lo más cerca posible de Amazon Linux 2011.09?