Ich habe versucht, die Größe meines Amazon Linux 1 AMI-Root-Volumes mit dem indiese Dokumentation(mit einigen Änderungen, die nach einem fehlgeschlagenen Versuch vorgenommen wurden) und stoßen bei dem Schritt ständig auf Fehler:
$ sudo grub-install --root-directory=/mnt/new-volume/ --force /dev/xvdf
Dies ist die alte GRUB-Version (Version 0.97-94.32.amzn1
)
Ich habe zunächst die folgende Fehlermeldung erhalten:
Unrecognized option `--force'
und als Ergebnis wurde die --force
Flagge entfernt und einfach verwendet:
$ sudo grub-install --root-directory=/mnt/new-volume/ /dev/xvdf
was seitdem zu Folgendem geführt hat:
/dev/xvdf does not have any corresponding BIOS drive
Ich habe versucht, die BIOS-Bootpartition mit parted oder fdisk zu erstellen, indem ich die Anweisungen indieser Threadaber jede Methode hat zum gleichen Fehler geführt. Bitte beachten Sie, dass der von mir verwendete spezifische Instanztyp (r5.large) die Laufwerke in entsprechende „nvme*“-Namen umbenennt, wie in der lsblk-Ausgabe angegeben:
nvme0n1 259:3 0 200G 0 disk
├─nvme0n1p1 259:4 0 200G 0 part /
└─nvme0n1p128 259:5 0 1M 0 part
nvme1n1 259:0 0 40G 0 disk
├─nvme1n1p2 259:2 0 40G 0 part /mnt/new-volume
└─nvme1n1p1 259:1 0 1M 0 part
Ein für die Fehlermeldung relevanter Artikel wurde hier gefunden:Beitrag mit Fragen zu Linuxaber das hat mein Problem nicht gelöst. Ich habe es durch Chroot in die Partition versucht und bin auf dasselbe Problem gestoßen. Ich habe versucht, einen zwischengeschalteten Amazon Linux 1- oder Amazon Linux 2-Host zu verwenden, aber das Problem besteht weiterhin.
Mir ist aufgefallen, dass dasselbe Problem auftritt, wenn in Amazon Linux 1 nur das Stammvolume verwendet wird:
grub-install /dev/sda OR grub-install /dev/sda1
Aber unabhängig davon kann die neue Festplatte nicht gebootet werden, es sei denn, sie ist als sekundäre Festplatte aufgeführt. Mit dem grub
Befehl allein vondas Legacy-GRUB-HandbuchDie Installation ist ebenfalls fehlgeschlagen. Habe ich das falsche Verfahren zum Erstellen eines neuen kleineren Stammdatenträgers ausprobiert oder habe ich in den obigen Schritten etwas übersehen? Ich kann bei Bedarf weitere Einzelheiten liefern.
Antwort1
Habe mich an dieselbe Anleitung gehalten und meiner Meinung nach hat es so funktioniert:
Unter Ubuntu 20 /boot/grub/grub.cfg
hatte ich eine falsche UUID, also musste ich sie hier korrigieren: /etc/default/grub.d/40-force-partuuid.cfg
und dann neu generieren /boot/grub/grub.cfg
mitgrub-mkconfig -o ...
Zusätzlich habe ich das neue EBS-Volume partitioniert, was Sie anscheinend auch getan haben:
Device Start End Sectors Size Type
/dev/nvme0n1p1 2048 411647 409600 200M BIOS boot
/dev/nvme0n1p2 411648 104857566 104445919 49.8G Linux filesystem
Ich bin mir jedoch nicht sicher, ob es notwendig war.
Antwort2
Sie müssen das richtige Blockgerät angeben, da SienvmeGerät stattxvdf
sudo grub-install --root-directory=/mnt/new-volume/ --force /dev/nvme1n1
Antwort3
Ich habe in der Zwischenzeit mit dem Folgenden einen Workaround für Amazon Linux 1 gefunden, bin aber immer noch offen für weitere Überprüfungen.
Starten Sie eine neue Instanz mit demselben AMI, ändern Sie jedoch die Größe des Stammvolumes auf die gewünschte Größe.
Stoppen Sie die neue Instanz, trennen Sie das kleinere EBS-Volume und hängen Sie es an die aktuelle Instanz an, an die das größere Stammvolume angeschlossen ist (im gestoppten Zustand).
Starten Sie die aktuelle Instanz (jetzt mit dem kleineren EBS-Volume als sekundäres Laufwerk).
Verwenden Sie Folgendes, um den Inhalt des Stammdatenträgers zu kopieren (vorausgesetzt, dieser ist gemountet unter
/mnt/new-volume
:$ rsync -axv / /mnt/neues-Volume
Stoppen Sie die aktuelle Instanz und trennen Sie beide Volumes.
Fügen Sie das kleinere neue Stammvolume an die Instanz an.
Starten Sie die Instanz
Dies ist zwar kein besonders eleganter Workaround, reicht aber aus, da nicht klar ist, wie das ursprüngliche Root-Volume erstellt und davon gebootet wird.