Reduzieren der Amazon EBS-Root-Volume-Größe unter Amazon Linux 1

Reduzieren der Amazon EBS-Root-Volume-Größe unter Amazon Linux 1

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 --forceFlagge 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 grubBefehl 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.cfghatte ich eine falsche UUID, also musste ich sie hier korrigieren: /etc/default/grub.d/40-force-partuuid.cfgund dann neu generieren /boot/grub/grub.cfgmitgrub-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.

  1. Starten Sie eine neue Instanz mit demselben AMI, ändern Sie jedoch die Größe des Stammvolumes auf die gewünschte Größe.

  2. 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).

  3. Starten Sie die aktuelle Instanz (jetzt mit dem kleineren EBS-Volume als sekundäres Laufwerk).

  4. Verwenden Sie Folgendes, um den Inhalt des Stammdatenträgers zu kopieren (vorausgesetzt, dieser ist gemountet unter /mnt/new-volume:

    $ rsync -axv / /mnt/neues-Volume

  5. Stoppen Sie die aktuelle Instanz und trennen Sie beide Volumes.

  6. Fügen Sie das kleinere neue Stammvolume an die Instanz an.

  7. 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.

verwandte Informationen