Beheben Sie Fehler beim Booten der Linux-Instance vom falschen Volume - Amazon Elastic Compute Cloud

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Beheben Sie Fehler beim Booten der Linux-Instance vom falschen Volume

Anmerkung

Dieses Thema zur Fehlerbehebung gilt nur für Linux-Instances.

In einigen Situationen stellen Sie möglicherweise fest, dass ein anderes Volume als das der Datei /dev/xvda oder /dev/sda angefügte als Stamm-Volume Ihrer Instance verwendet wird. Dies kann der Fall sein, wenn Sie das Stamm-Volume einer anderen Instance – oder ein aus dem Snapshot eines Stamm-Volumes erstelltes Volume – einer Instance mit einem vorhandenen Stamm-Volume angefügt haben.

Die Ursache ist in der Funktionsweise der anfänglichen Ramdisk in Linux zu suchen. Sie wählt das Volume, das als / in /etc/fstab definiert ist, aus und in einigen Verteilungen wird dies durch die Bezeichnung bestimmt, die der Volume-Partition angefügt ist. Ihre /etc/fstab-Datei sieht ähnlich aus wie im folgenden Beispiel dargestellt:

LABEL=/ / ext4 defaults,noatime 1 1 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0

Wenn Sie die Bezeichnung beider Volumes überprüfen, stellen Sie fest, dass beide die /-Bezeichnung enthalten:

[ec2-user ~]$ sudo e2label /dev/xvda1 / [ec2-user ~]$ sudo e2label /dev/xvdf1 /

In diesem Beispiel wird /dev/xvdf1 möglicherweise zum Stammgerät, von dem aus Ihre Instance startet, nachdem die anfängliche Ramdisk ausgeführt wird, statt dass der Start wie beabsichtigt über das /dev/xvda1-Volume erfolgt. Um dies zu beheben, verwenden Sie denselben e2label-Befehl, um die Bezeichnung des angefügten Volumes zu ändern, von dem aus der Start nicht erfolgen soll.

In manchen Fällen kann dies durch die Angabe einer UUID in /etc/fstab gelöst werden. Wenn jedoch beide Volumes aus demselben Snapshot kommen oder das sekundäre Volume aus einem Snapshot des primären Volumes erstellt wird, haben sie eine gemeinsame UUID.

[ec2-user ~]$ sudo blkid /dev/xvda1: LABEL="/" UUID=73947a77-ddbe-4dc7-bd8f-3fe0bc840778 TYPE="ext4" PARTLABEL="Linux" PARTUUID=d55925ee-72c8-41e7-b514-7084e28f7334 /dev/xvdf1: LABEL="old/" UUID=73947a77-ddbe-4dc7-bd8f-3fe0bc840778 TYPE="ext4" PARTLABEL="Linux" PARTUUID=d55925ee-72c8-41e7-b514-7084e28f7334
So ändern Sie die Bezeichnung eines angefügten ext4- Volumes
  1. Ändern Sie mit dem e2label-Befehl die Bezeichnung des Volumes, sodass sie nicht / lautet.

    [ec2-user ~]$ sudo e2label /dev/xvdf1 old/
  2. Überprüfen Sie, dass das Volume über die neue Bezeichnung verfügt.

    [ec2-user ~]$ sudo e2label /dev/xvdf1 old/
So ändern Sie die Bezeichnung eines angefügten xfs-Volumes
  • Ändern Sie mit dem xfs_admin-Befehl die Bezeichnung des Volumes, sodass sie nicht / lautet.

    [ec2-user ~]$ sudo xfs_admin -L old/ /dev/xvdf1 writing all SBs new label = "old/"

Nachdem Sie die Bezeichnung des Volumes wie gezeigt geändert haben, sollten Sie die Instance neu starten können und das richtige Volume sollte von der anfänglichen Ramdisk beim Start der Instance ausgewählt werden.

Wichtig

Wenn Sie das Volume mit dem neuen Etikett trennen und an eine andere Instance zur Verwendung als Root-Volume zurückgeben möchten, müssen Sie das obige Verfahren erneut durchführen und das Volumeetikett wieder auf seinen ursprünglichen Wert setzen. Andernfalls wird die andere Instance nicht gestartet, da die Ramdisk das Volume mit dem Etikett nicht finden kan /.