J'ai réussi à faire démarrer Amazon Linux dans VirtualBox, grâce à cette réponse et à ces sites Web . Un bref aperçu des mesures que j'ai prises:
- Lancer l'instance EC2 avec Amazon Linux 2011.09 AMI 64 bits
dd
le contenu du volume EBS surssh
un fichier image local.- Montez le fichier image en tant que périphérique de bouclage, puis sur un point de montage local.
- Créez un nouveau fichier d'image disque vide, partitionnez avec un décalage pour un chargeur de démarrage et créez un système de fichiers ext4.
- Montez la partition de la nouvelle image et copiez tout depuis l'image EC2.
- Installez grub (en utilisant le
grub-legacy-ec2
paquet d'Ubuntu , pas grub2). - Convertissez le fichier image en vmdk à l'aide de
qemu-img
. - Créez une nouvelle VM VirtualBox avec le vmdk.
Maintenant, la VM démarre, charge grub et le noyau est trouvé. Mais il échoue lorsqu'il essaie de monter le périphérique racine:
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
J'ai essayé de changer /boot/grub/menu.lst
pour trouver le périphérique racine par étiquette et UUID, mais rien ne fonctionne. Je suppose que le noyau xen n'est pas compatible avec VirtualBox.
Le raisonnement derrière tous ces efforts est de créer une boîte Vagrant aussi proche que possible de l'environnement de production, afin que les déploiements puissent être testés localement. Je sais que ce n'est pas cher de faire des tests sur EC2, mais une mauvaise connectivité gâche souvent l'expérience. De plus, ce serait vraiment bien d'avoir une machine virtuelle avec l'environnement de production afin que les collègues n'aient pas à tout installer sous le soleil juste pour se lancer dans le développement d'applications.
Si je devais essayer d'exécuter un autre noyau, quel noyau pourrais-je obtenir pour être aussi proche que possible d'Amazon Linux 2011.09?