Dank dieser Antwort und dieser Websites habe ich es fast geschafft, Amazon Linux in VirtualBox zum Booten zu bringen . Ein kurzer Überblick über die Schritte, die ich unternommen habe:
- Starten Sie die EC2-Instanz mit Amazon Linux 2011.09 64-Bit-AMI
dd
Der Inhalt des EBS-Volumes wirdssh
in eine lokale Image-Datei übertragen.- Hängen Sie die Image-Datei als Loopback-Gerät und dann an einem lokalen Einhängepunkt ein.
- Erstellen Sie eine neue leere Disk-Image-Datei, partitionieren Sie mit einem Offset für einen Bootloader und erstellen Sie ein ext4-Dateisystem.
- Hängen Sie die Partition des neuen Images ein und kopieren Sie alles aus dem EC2-Image.
- Installieren Sie grub (mit Ubuntus
grub-legacy-ec2
Paket, nicht mit grub2). - Konvertieren Sie die Image-Datei mit vmdk
qemu-img
. - Erstellen Sie eine neue VirtualBox-VM mit dem VMDK.
Jetzt bootet die VM, lädt das Grub und der Kernel wird gefunden. Es schlägt jedoch fehl, wenn versucht wird, das Root-Gerät bereitzustellen:
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
Ich habe versucht /boot/grub/menu.lst
, das Root-Gerät nach Label und UUID zu suchen, aber es funktioniert nichts. Ich vermute, der Xen-Kernel ist nicht mit VirtualBox kompatibel.
Der Grund für all diese Bemühungen besteht darin, eine Vagrant-Box herzustellen, die so nah wie möglich an der Produktionsumgebung ist, sodass die Bereitstellung vor Ort getestet werden kann. Ich weiß, dass es billig ist, Testläufe mit EC2 durchzuführen, aber schlechte Konnektivität ruiniert oft die Erfahrung. Außerdem wäre es sehr schön, eine virtuelle Maschine in der Produktionsumgebung zu haben, damit die Mitarbeiter nicht alles unter der Sonne installieren müssen, um mit der App-Entwicklung beginnen zu können.
Wenn ich versuchen würde, einen anderen Kernel auszuführen, welchen Kernel könnte ich bekommen, um Amazon Linux 2011.09 so nahe wie möglich zu kommen?
quelle
Antworten:
Ich habe so viel versucht und ich habe aufgegeben, aber am Ende ist es mir gelungen!
Ich habe es geschafft, mit einem unter VMware portierten Amazon Linux AMI zu booten!
Ich bin fast ein Neuling, aber ich habe es nach stundenlangen Versuchen geschafft, den ursprünglichen Amazon-Kernel durch ein vmlinuz-2.6.32-38-Generikum zu ersetzen, das aus einer Ubuntu 64 10.04-Distribution stammt.
Ich bekomme nur eine Menge Fehler, weil die Amazon-Konfiguration in der AMI nach etwas in einer internen Adresse sucht, das sie offensichtlich nicht findet. Es ist das / usr / bin / cloud-init, denke ich.
Aber ich kann mich einloggen und es scheint, dass alles funktioniert!
Danke für Ihre Hilfe!!
Ich habe diesen Blogpost mit einer schrittweisen Anleitung für die Migration von AMI zu VMware geschrieben.
Hoffe das hilft!
quelle
Der offizielle Kernel Amazon hat ihren in ihrer 2011.09-Distribution, dh 2.6.35.14 , abgeleitet.
Sie können wahrscheinlich das Quellpaket für Amazon erhalten
get_reference_source
, aber ich würde nicht erwarten, dass es auch außerhalb von Amazon funktioniert.quelle
Die Leute bei Cloudify haben geteilt, wie sie eine VirtualBox-fähige Vagrant-Box ohne Zugriff auf Bare-Metal-Maschinen erstellen - sie verwenden AWS.
9 Schritte zum Himmel:
quelle