Problembehandlung bei einer Amazon EC2 Linux-Instance, die von einem falschen Volume gestartet wird - 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.

Problembehandlung bei einer Amazon EC2 Linux-Instance, die von einem falschen Volume gestartet wird

In manchen Situationen wird ein anderes Volume als das Volume, das an eine Linux-Instance angehängt ist /dev/xvda oder zum Root-Volume einer Linux-Instance /dev/sda 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 einigen Fällen /etc/fstab kann dieses Problem durch Angabe eines UUID in behoben werden. Wenn jedoch beide Volumes aus demselben Snapshot stammen oder das sekundäre Volume aus einem Snapshot des primären Volumes erstellt wurde, teilen sie sich einenUUID.

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