Ich habe eine EC2-Instanz, auf der Ubuntu 12.04 32-Bit-AMI ausgeführt wird (auf der ersten Seite der Classic-Assistent zum Starten einer neuen Instanz verfügbar). Das Root-Gerät ist ein EBS-Volume. Ich folge dann diesen Schritten:
- Stoppen Sie den Server
- Klicken Sie mit der rechten Maustaste auf der Registerkarte Volumes auf Volume -> Snapshot erstellen
- Klicken Sie mit der rechten Maustaste auf den Schnappschuss auf der Registerkarte Schnappschüsse -> Bild aus diesem Schnappschuss erstellen
- Klicken Sie auf der Registerkarte AMI mit der rechten Maustaste auf das neu erstellte AMI und wählen Sie "Instanz starten".
Während des dritten Schritts des Assistenten bemerke ich diese Zeile für "Speichergerätekonfiguration".
Root /dev/sda1 snap-xxxxxx 8GiB standard true
Dies scheint mir darauf hinzudeuten, dass der Snapshot als Root-Volume für die neue Instanz verwendet wird (es ist tatsächlich das einzige Volume).
Ich starte dann die Instanz. Die "Statusprüfungen" während des "Initialisierungs" -Schritts schlagen jedoch fehl. Wenn ich mit der rechten Maustaste auf die Instanz klicke und "Systemprotokoll abrufen", ist dies das Ende des Protokolls:
Using IPI No-Shortcut mode
XENBUS: Timeout connecting to devices!
md: Autodetecting RAID arrays.
md: autorun ...
md: ... autorun DONE.
EXT3-fs: sda1: couldn't mount because of unsupported optional features (240).
EXT2-fs: sda1: couldn't mount because of unsupported optional features (244).
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(8,1)
Was mache ich hier falsch? Mein Anliegen ist zweifach:
- Wenn ich nicht von einem Snapshot booten kann, ist das Snapshot-Dienstprogramm weniger nützlich
- Wenn ich aus einem Snapshot keine AMI zum Erstellen einer neuen Instanz erstellen kann, verringert dies nicht nur die Nützlichkeit von Snapshots, sondern lässt uns auch fragen, wie ich Instanzen einfach "duplizieren" kann.
quelle
Antworten:
Die Fehler, die Sie erhalten haben, deuten darauf hin, dass Ihr Dateisystem aktueller ist als das vom Kernel unterstützte (höchstwahrscheinlich ein ext4 auf einem Kernel, der nur ext2 / 3 unterstützt). Einige AMIs hängen von einem nicht standardmäßigen AKI (Amazon Kernel Image) ab, um bestimmte Funktionen bereitzustellen.
In diesem Fall scheint das von Ihnen befolgte Verfahren korrekt zu sein. In Kombination mit dem Fehler, den Sie erhalten haben, besteht daher eine gute Chance, dass die AKIs nicht übereinstimmen. Überprüfen Sie die von der ursprünglichen Instanz verwendete AKI und vergleichen Sie sie mit der der neuen Instanz. Wenn sie nicht übereinstimmen, geben Sie die AKI zum Startzeitpunkt explizit an. (Sie können die AMI auch manuell erstellen und dabei die AKI zu diesem Zeitpunkt angeben, sodass sie beim Start angegeben werden muss.)
Abgesehen davon wird ein besseres AMI-Design PV-GRUB als Bootloader verwenden, um einen Kernel vom AMI selbst zu laden (anstatt ein bestimmtes externes AKI zu benötigen), was den Prozess der Aktualisierung des Kernels vereinfacht. Die AWS-Dokumentation zu vom Benutzer bereitgestellten Kerneln ist lesenswert, wenn Sie dies in Ihrem AMI implementieren möchten.
quelle
Da Sie Ubuntu speziell erwähnt haben, kann dieses Tool für Sie hilfreich sein:
Ich hatte das gleiche passiert, und die Auswahl des richtigen AKI für die Betriebssystemversion und -architektur mit dem obigen Tool funktionierte wie ein Zauber.
quelle
Ich bin auf ein ähnliches Problem gestoßen, und es stellt sich heraus, dass die Standardeinstellungen von AWS EC2 beim Starten der Instanz im Vergleich zum Erstellen einer AMI unterschiedlich sind: Hardwarevirtualisierung (HVM) ist im ersten Fall die Standardauswahl, aber paravirtual (PV) ist die Standardeinstellung für die Imageerstellung.
Ich bin darauf gestoßen, als ich versucht habe, die EC2-Instanz zwischen den Verfügbarkeitszonen zu verschieben, indem ich das EBS-Volume aufgenommen und einen neuen AMI erstellt habe. Diese Diskrepanz in den Einstellungen (auf die ich auch nicht geachtet habe) hat eine Stunde für mich verschwendet.
Also, tl; dr: Wählen Sie einfach HVM, wenn Sie von einem angepassten AMI starten, und Ihre Instanz sollte einwandfrei starten.
quelle