Wie interagiere ich während des Startvorgangs unter Amazon EC2 mit der Konsole?

8

Ich habe eine Instanz, die an dieser Startaufforderung hängen bleibt (siehe Instanzprotokoll von der Verwaltungskonsole):

The disk drive for /mydisk is not ready yet or not present
Continue to wait; or Press S to skip mounting or M for manual recovery

Ich habe ein EBS-Volume hinzugefügt, es gemountet, dann das EBS-Volume gelöscht und vergessen, den Eintrag aus / etc / fstab zu entfernen, und den Computer neu gestartet. Jetzt werde ich zum Start aufgefordert, und ich kann keine SSH-Verbindung zur Instanz herstellen.

Was kann ich tun, um dieses Problem zu beheben?

ErJab
quelle

Antworten:

11

Ich kenne keine "einfache" Lösung für Ihr Problem, aber es gibt eine etwas komplizierte (abhängig von Ihrem Root-Gerätetyp) Lösung.

Wenn Ihre Instanz einen EBS-Stamm hat, ist die Lösung einfach genug: Stoppen Sie die Instanz, trennen Sie das EBS-Laufwerk, starten Sie eine andere Instanz und hängen Sie das EBS-Volume daran an. Bearbeiten Sie Ihre fstab-Datei nach Bedarf, trennen Sie das EBS-Volume und hängen Sie es erneut an die ursprüngliche Instanz an.

Wenn Ihre Instanz einen S3-gestützten Stamm hat (dh einen Instanzspeicher), ist die Lösung ein gutes Stück schwieriger. Sie können die Daten von Ihrem AMI herunterladen (mithilfe des ec2-Download-Bundles ) und diese Daten dann in eine einzelne Datei extrahieren (mithilfe des ec2-Unbundle ). Anschließend können Sie das Image bereitstellen, die erforderlichen Änderungen vornehmen und das Image neu bündeln (mit ec2-bundle-vol wird das Standard-Volume überschrieben, das mit dem Flag -v gebündelt werden soll). Das sollte Ihnen einen neuen, funktionsfähigen AMI geben, der bis auf die von Ihnen vorgenommenen Änderungen mit Ihrem alten identisch ist. Alternativ können Sie den Inhalt der Image-Datei mit dd auf ein EBS-Volume kopieren und dann in eine EBS-Root-Instanz konvertieren.

cyberx86
quelle
Zum Glück hat meine Instanz eine EBS-Wurzel! Vielen Dank für die Antwort. Ich werde es ausprobieren und bestätigen, dass es funktioniert.
ErJab
1
ErJab: Ich habe einen Artikel geschrieben, in dem beschrieben wird, wie dies mit dem EBS-Boot gemacht wird: alestic.com/2011/02/ec2-fix-ebs-root
Eric Hammond
Wäre es ratsam, auch etwas hinzuzufügen nofail, /etc/fstabfalls Sie einen Tippfehler machen? Vielleicht nicht, vielleicht halten "Fehler" (wie in beschrieben fstab(5)) den Startvorgang nicht auf.
Adam Monsen
@AdamMonsen: Dies ist eine gute Vorgehensweise für einige Laufwerke - z. B. kurzlebige Laufwerke, da der Startvorgang in den Wiederherstellungsmodus beendet wird, wenn eine Festplatte nicht verfügbar ist. Normalerweise benutze ich die Option nobootwait- habe es nicht ausprobiert nofail- ich glaube, es gibt einige subtile Unterschiede zwischen ihnen.
Cyberx86
0

Wenn Ihr Ubuntu hat systemd, können Sie /lib/systemd/system/local-fs.targetdie letzten beiden Zeilen bearbeiten und auskommentieren:

#OnFailure=emergency.target
#OnFailureJobMode=replace-irreversibly

Ich habe dies nicht ausführlich getestet und weiß nicht, ob es Risiken oder Nebenwirkungen gibt, aber bisher funktioniert es wie ein Zauber. Es stellt das Root-Volume und alle anderen Volumes bereit (mit Ausnahme derjenigen, die offensichtlich falsch konfiguriert sind) und setzt dann den Startvorgang fort, bis SSH aktiv ist, sodass Sie eine Verbindung zur Instanz herstellen und die falschen fstabEinträge korrigieren können.

ThiagoAlves
quelle