Ich habe eine von EBS unterstützte Amazon EC2-Instanz. Ich möchte das Root-Gerät in dieser Instanz ändern. Können Sie bitte den besten Weg dazu nennen?
Ich finde nur Dokumentation zum Ändern mehrerer Attribute von Blockgeräten, aber sie scheinen nicht das Festlegen als Root-Gerät zu beinhalten.
/dev/sda1
Tat!/dev/sda
noch/dev/sda1
für mich gearbeitet, aber/dev/xvda
tat./dev/sda
- hat nicht funktioniert./dev/sda1
,dev/sdf
- hat funktioniert, aber die Instanz wurde nicht gestartet./dev/xvda
hat funktioniert.aws ec2 describe-instances --instance-id i-XXXXXXX | grep -i rootDeviceName
in meinem Fall/dev/xvda
Ich habe nicht genügend Mitarbeiter, um der ausgewählten Antwort einen Kommentar hinzuzufügen, aber ich möchte darauf hinweisen, dass dies für mich
/dev/sda1
nicht funktioniert hat (nicht als root/dev/xvda
angehängt ), sondern funktioniert hat (als root angehängt). Die Instanz ist eine der neueren t2.micro-Instanzen, die HVM verwenden.quelle
/dev/sda1
anhänge, weigert sich AWS, meine Instanz zu starten. Gibt es eine andere Einstellung, die ich konfigurieren muss, um einen alternativen Root-Gerätenamen zu verwenden?/dev/sda
ungültig ist , aber/dev/sda1
ist in Ordnung.Um den Kommentar von Diomidis Spinellis im Kommentarthread der akzeptierten Antwort zu erläutern, ist es wichtig, die Dateisystembezeichnung des Geräts zu überprüfen, das Sie als neues Root-Gerät einschalten möchten. Bei der Fehlerbehebung bei meiner eigenen Servermigration musste ich Folgendes tun, bevor meine Instanz gestartet werden konnte:
Verwenden Sie den
e2label
Befehl, um die Bezeichnung des ext2 / ext3 / ext4-Dateisystems zu ändern, das Sie für Ihr neues Root-Gerät erstellt haben.Überprüfen Sie zunächst die Dateisystembezeichnung für Ihr aktuelles Root-Gerät.
Stellen Sie das neue Gerät so ein, dass es dieselbe Dateisystembezeichnung hat.
In meinem Fall war das Etikett
cloudimg-rootfs
. Manchmal wird es einfach sein/
.Es ist wichtig zu verstehen, wie e2label funktioniert. Überprüfen Sie
man e2label
Ihren Computer oder besuchen Sie http://linux.die.net/man/8/e2label, um weitere Informationen zu erhalten.quelle
Dies ist die von aws vorgeschlagene Lösung. Sie können das Root-Volume nach dem Stoppen von der ursprünglichen Instanz trennen. Das Root-Volume ist an / dev / sda1 angehängt. Sobald dies getrennt ist, hängen Sie es bitte an die neue Instanz an. Nachdem das Volume angehängt wurde, müssen Sie es möglicherweise vom Betriebssystem aus bereitstellen. Nach dem Mounten sollten Sie die darin enthaltenen Daten sehen.
Nachdem Sie den neuen Schlüssel hinzugefügt haben, können Sie ihn trennen und unter / dev / sda1 an die ursprüngliche Instanz anhängen.
Ich empfehle, einen Snapshot des Root-Volumes zu erstellen, bevor Sie Änderungen vornehmen.
Bevor Sie Lösungen ausprobieren, probieren Sie sie einfach in den nicht wichtigen Instanzen oder Spot-Instanzen aus
quelle
Wenn Sie dies über CloudFormation tun möchten, müssen Sie Folgendes tun:
Stellen Sie Ihren Stack bereit. Dadurch wird Ihre Instanz neu erstellt. Stellen Sie daher sicher, dass Sie eine elastische IP-Adresse verwenden oder über DNS-Zugriff verfügen.
Der Grund, warum Sie diese Problemumgehung durchführen müssen, ist, dass Sie mit CF die Größe des Root-Volumes in EC2 BlockDeviceMappings nicht anpassen oder die SnapshotId des Root-Volumes nicht anpassen können.
quelle
Wenn Ihr Volume bereitgestellt wird, wird es nachträglich mit Zahlen versehen, z. B.: Wenn
/dev/sda
es bereitgestellt wird,/dev/sda1, /dev/sda2
hängt es von den von Ihnen erstellten Partitionen ab. Da wir das Root-Gerät selbst mounten, wird davon ausgegangen, dass das Gerät bereits gemountet ist. Daher müssen wir/dev/sda1
für das Mounten des Volumes als Root-Gerät angeben. Hinweis: Es sollte kein Root-Volume angehängt sein.Führen Sie die folgenden Schritte aus: 1) Gehen Sie zu Ihren Volumes und wählen Sie unter Aktion die Option Volumes anhängen aus. 2) Wählen Sie Ihre Instanz aus. 3) Geben Sie zum Mounten als Root den Gerätenamen als
/dev/sda1
4) Starten Sie Ihre Instanz.quelle