Vom Benutzer bereitgestellte Kernel - Amazon Linux 2

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.

Vom Benutzer bereitgestellte Kernel

Wenn Sie einen benutzerdefinierten Kernel für Ihre EC2 Amazon-Instances benötigen, können Sie mit einem AMI beginnen, das Ihren Wünschen sehr nahe kommt, den benutzerdefinierten Kernel auf Ihrer Instance kompilieren und den Bootloader so aktualisieren, dass er auf den neuen Kernel verweist. Dieser Prozess variiert je nach Virtualisierungstyp, der von Ihrem AMI verwendet wird. Weitere Informationen finden Sie unter Linux-AMI-Virtualisierungstypen im EC2 Amazon-Benutzerhandbuch.

HVM AMIs (GRUB)

HVM-Instance-Volumes werden wie echte physische Datenträger behandelt. Der Startvorgang ähnelt dem Vorgang eines Bare-Metal-Betriebssystems mit einem partitionierten Datenträger und Bootloader, sodass die Verwendung mit allen derzeit unterstützten Linux-Distributionen möglich ist. Der gebräuchlichste Bootloader ist GRUB oder. GRUB2

Standardmäßig sendet GRUB seine Ausgabe nicht an die Instance-Konsole, da dies zu einer zusätzlichen Startverzögerung führt. Weitere Informationen finden Sie unter Ausgabe der Instance-Konsole im EC2 Amazon-Benutzerhandbuch. Wenn Sie einen benutzerdefinierten Kernel installieren, sollten Sie erwägen, die GRUB-Ausgabe zu aktivieren.

Es ist nicht erforderlich, einen Fallback-Kernel anzugeben. Es empfiehlt sich jedoch die Verwendung eines Fallbacks, wenn Sie einen neuen Kernel testen. In GRUB kann dann ein Fallback auf einen anderen Kernel durchgeführt werden, falls der neue Kernel ausfällt. Bei Vorhandensein eines Fallback-Kernels kann die Instance auch dann gestartet werden, wenn der neue Kernel nicht gefunden werden kann.

Das Legacy-GRUB für Amazon Linux verwendet/boot/grub/menu.lst. GRUB2 für AL2 Anwendungen/etc/default/grub. Weitere Informationen zum Aktualisieren des Standardkernels im Bootloader finden Sie in der Dokumentation für die Linux-Distribution.

Paravirtuell AMIs (PV-GRUB)

AMIs die paravirtuelle (PV) Virtualisierung verwenden, verwenden während des Startvorgangs ein System namens PV-GRUB. PV-GRUB ist ein Paravirtual-Bootloader, bei dem eine gepatchte Version von GNU GRUB 0.97 ausgeführt wird. Wenn Sie eine Instance starten, startet PV-GRUB den Bootprozess und führt dann das Chain Loading für den Kernel durch, der in der Datei menu.lst Ihres Images angegeben ist.

PV-GRUB erkennt standardmäßige grub.conf- oder menu.lst-Befehle, sodass alle derzeit unterstützten Linux-Distributionen verwendet werden können. Für ältere Distributionen, z. B. Ubuntu 10.04 LTS, Oracle Enterprise Linux oder CentOS 5.x, ist ein spezielles Kernel-Paket vom Typ „ec2“ oder „xen“ erforderlich. Bei neueren Distributionen sind die erforderlichen Treiber im Kernel-Standardpaket enthalten.

Die meisten modernen Paravirtuals AMIs verwenden standardmäßig eine PV-GRUB-AKI (einschließlich aller paravirtuellen Linux-Dateien, die im Schnellstartmenü des Amazon EC2 Launch Wizard AMIs verfügbar sind). Sie müssen also keine zusätzlichen Schritte unternehmen, um einen anderen Kernel auf Ihrer Instance zu verwenden, vorausgesetzt, der Kernel, den Sie verwenden möchten, ist mit Ihrer Distribution kompatibel. Der beste Ansatz zur Ausführung eines benutzerdefinierten Kernels auf Ihrer Instance besteht darin, mit einem AMI zu beginnen, das Ihren Anforderungen am ehesten entspricht. Kompilieren Sie den benutzerdefinierten Kernel dann auf Ihrer Instance und ändern Sie die Datei menu.lst, um den Startvorgang mit diesem Kernel durchzuführen.

Sie können überprüfen, ob das Kernel-Image für ein AMI ein PV-GRUB-AKI ist. Führen Sie den folgenden Befehl describe-images aus (ersetzt Ihre Kernel-Image-ID) und überprüfen Sie, ob das Name-Feld mit pv-grub beginnt:

aws ec2 describe-images --filters Name=image-id,Values=aki-880531cd

Einschränkungen von PV-GRUB

Für PV-GRUB gelten die folgenden Einschränkungen:

  • Es ist nicht möglich, die 64-Bit-Version von PV-GRUB zu verwenden, um einen 32-Bit-Kernel zu starten (und umgekehrt).

  • Bei Verwendung eines PV-GRUB-AKI können Sie kein Amazon Ramdisk Image (ARI) angeben.

  • AWS hat getestet und verifiziert, dass PV-GRUB mit den folgenden Dateisystemformaten funktioniert: EXT2,,, JFS EXT3 EXT4, XFS und ReiserFS. Andere Dateisystemformate funktionieren unter Umständen nicht.

  • PV-GRUB kann Kernel starten, die mit den Komprimierungsformaten gzip, bzip2, lzo und xz komprimiert wurden.

  • Cluster unterstützen oder benötigen PV-GRUB AMIs nicht, da sie die vollständige Hardwarevirtualisierung (HVM) verwenden. Während Paravirtual-Instances zum Starten PV-GRUB verwenden, werden HVM-Instance-Volumes wie echte Datenträger behandelt. Der Startvorgang ähnelt dem Startvorgang eines Bare-Metal-Betriebssystems mit einem partitionierten Datenträger und Bootloader.

  • Die PV-GRUB-Versionen 1.03 und früher weisen keine Unterstützung für die GPT-Partitionierung auf, sondern nur für die MBR-Partitionierung.

  • Wenn Sie planen, einen Logical Volume Manager (LVM) für Volumes Amazon Elastic Block Store (Amazon EBS) zu verwenden, benötigen Sie eine separate Boot-Partition außerhalb des LVM. Anschließend können Sie mit dem LVM logische Volumes erstellen.

Konfigurieren Sie GRUB für paravirtuell AMIs

Zum Starten von PV-GRUB muss im Image die GRUB-Datei menu.lst enthalten sein. Der am häufigsten verwendete Speicherort für diese Datei ist /boot/grub/menu.lst.

Unten ist ein Beispiel für die Konfigurationsdatei menu.lst zum Starten eines AMI mit einem PV-GRUB-AKI angegeben. In diesem Beispiel können Sie zwischen zwei Kernel-Einträgen wählen: Amazon Linux 2018.03 (ursprünglicher Kernel für dieses AMI) und Vanilla Linux 4.16.4 (neuere Version des Vanilla Linux-Kernels von https://www.kernel.org/). Der Vanilla-Eintrag wurde aus dem Originaleintrag für dieses AMI kopiert und die Pfade kernel und initrd wurden auf die neuen Speicherorte aktualisiert. Mit dem Parameter default 0 wird für den Bootloader auf den ersten Eintrag verwiesen, der sichtbar ist (in diesem Fall der Vanilla-Eintrag), und mit dem Parameter fallback 1 wird für den Bootloader auf den nächsten Eintrag verwiesen, falls beim Starten des ersten Eintrags ein Problem auftritt.

default 0
fallback 1
timeout 0
hiddenmenu

title Vanilla Linux 4.16.4
root (hd0)
kernel /boot/vmlinuz-4.16.4 root=LABEL=/ console=hvc0
initrd /boot/initrd.img-4.16.4

title Amazon Linux 2018.03 (4.14.26-46.32.amzn1.x86_64)
root (hd0)
kernel /boot/vmlinuz-4.14.26-46.32.amzn1.x86_64 root=LABEL=/ console=hvc0
initrd /boot/initramfs-4.14.26-46.32.amzn1.x86_64.img

Es ist nicht erforderlich, in Ihrer Datei menu.lst einen Fallback-Kernel anzugeben. Wir empfehlen Ihnen aber die Verwendung eines Fallbacks, wenn Sie einen neuen Kernel testen. In PV-GRUB kann dann ein Fallback auf einen anderen Kernel durchgeführt werden, falls der neue Kernel ausfällt. Bei Vorhandensein eines Fallback-Kernels kann die Instance auch dann gestartet werden, wenn der neue Kernel nicht gefunden werden kann.

PV-GRUB prüft die folgenden Speicherorte auf das Vorhandensein von menu.lst und verwendet das erste Vorkommen der Datei:

  • (hd0)/boot/grub

  • (hd0,0)/boot/grub

  • (hd0,0)/grub

  • (hd0,1)/boot/grub

  • (hd0,1)/grub

  • (hd0,2)/boot/grub

  • (hd0,2)/grub

  • (hd0,3)/boot/grub

  • (hd0,3)/grub

Beachten Sie, dass mit PV-GRUB 1.03 und früher nur einer der ersten beiden Speicherorte der Liste geprüft wird.

Amazon PV-GRUB-Kernel-Image IDs

PV-GRUB AKIs sind in allen EC2 Amazon-Regionen mit Ausnahme des asiatisch-pazifischen Raums (Osaka) erhältlich. Es gibt sowohl 32-Bit AKIs - als auch 64-Bit-Architekturtypen. Die meisten modernen AMIs Geräte verwenden standardmäßig ein PV-GRUB-AKI.

Wir empfehlen Ihnen, immer die aktuelle Version des PV-GRUB-AKI zu nutzen, da nicht alle Versionen des PV-GRUB-AKI mit allen Instance-Typen kompatibel sind. Verwenden Sie den folgenden Befehl describe-images, um eine Liste der AKIs PV-GRUB-Dateien für die aktuelle Region abzurufen:

aws ec2 describe-images --owners amazon --filters Name=name,Values=pv-grub-*.gz

PV-GRUB ist das einzige AKI, das in der Region ap-southeast-2 verfügbar ist. Stellen Sie sicher, dass für AMIs, die Sie in diese Region kopieren möchten, eine Version von PV-GRUB verwendet wird, die in dieser Region verfügbar ist.

Im Folgenden sind die aktuellen AKI für jede Region aufgeführt. IDs Registrieren Sie sich neu AMIs mit einem hd0-AKI.

Anmerkung

Aus AKIs Gründen der Abwärtskompatibilität bieten wir weiterhin hd00 in Regionen an, in denen sie zuvor verfügbar waren.

ap-northeast-1, Asia Pacific (Tokyo)
Image-ID Name des Images
aki-f975a998 pv-grub-hd0_1.05-i386.gz
aki-7077ab11 pv-grub-hd0_1.05-x86_64.gz
ap-southeast-1, Asia Pacific (Singapore) Region
Image-ID Name des Images
aki-17a40074 pv-grub-hd0_1.05-i386.gz
aki-73a50110 pv-grub-hd0_1.05-x86_64.gz
ap-southeast-2, Asia Pacific (Sydney)
Image-ID Name des Images
aki-ba5665d9 pv-grub-hd0_1.05-i386.gz
aki-66506305 pv-grub-hd0_1.05-x86_64.gz
eu-central-1, Europe (Frankfurt)
Image-ID Name des Images
aki-1419e57b pv-grub-hd0_1.05-i386.gz
aki-931fe3fc pv-grub-hd0_1.05-x86_64.gz
eu-west-1, Europe (Ireland)
Image-ID Name des Images
aki-1c9fd86f pv-grub-hd0_1.05-i386.gz
aki-dc9ed9af pv-grub-hd0_1.05-x86_64.gz
sa-east-1, South America (São Paulo)
Image-ID Name des Images
aki-7cd34110 pv-grub-hd0_1.05-i386.gz
aki-912fbcfd pv-grub-hd0_1.05-x86_64.gz
us-east-1, US East (N. Virginia)
Image-ID Name des Images
aki-04206613 pv-grub-hd0_1.05-i386.gz
aki-5c21674b pv-grub-hd0_1.05-x86_64.gz
us-gov-west-1, AWS GovCloud (US-West)
Image-ID Name des Images
aki-5ee9573f pv-grub-hd0_1.05-i386.gz
aki-9ee55bff pv-grub-hd0_1.05-x86_64.gz
us-west-1, US West (N. California)
Image-ID Name des Images
aki-43cf8123 pv-grub-hd0_1.05-i386.gz
aki-59cc8239 pv-grub-hd0_1.05-x86_64.gz
us-west-2, US West (Oregon)
Image-ID Name des Images
aki-7a69931a pv-grub-hd0_1.05-i386.gz
aki-70cb0e10 pv-grub-hd0_1.05-x86_64.gz

Aktualisieren von PV-GRUB

Wir empfehlen Ihnen, immer die aktuelle Version des PV-GRUB-AKI zu nutzen, da nicht alle Versionen des PV-GRUB-AKI mit allen Instance-Typen kompatibel sind. Ältere Versionen von PV-GRUB sind ebenfalls nicht in allen Regionen verfügbar. Beim Kopieren eines AMI, für das eine ältere Version verwendet wird, in eine Region, von der diese Version nicht unterstützt wird, gilt daher Folgendes: Das Starten von Instances, die über dieses AMI gestartet werden, ist erst möglich, wenn Sie das Kernel-Image aktualisieren. Verwenden Sie die folgenden Vorgehensweisen, um die PV-GRUB-Version Ihrer Instance zu überprüfen und ggf. zu aktualisieren.

So überprüfen Sie Ihre PV-GRUB-Version
  1. Ermitteln Sie die Kernel-ID für Ihre Instance.

    aws ec2 describe-instance-attribute --instance-id instance_id --attribute kernel --region region { "InstanceId": "instance_id", "KernelId": "aki-70cb0e10" }

    Die Kernel-ID für diese Instance lautet aki-70cb0e10.

  2. Zeigen Sie die Versionsinformationen für diese Kernel-ID an.

    aws ec2 describe-images --image-ids aki-70cb0e10 --region region { "Images": [ { "VirtualizationType": "paravirtual", "Name": "pv-grub-hd0_1.05-x86_64.gz", ... "Description": "PV-GRUB release 1.05, 64-bit" } ] }

    Dieses Kernel-Image hat die Version PV-GRUB 1.05. Falls Sie nicht die aktuelle PV-GRUB-Version nutzen (wie unter Amazon PV-GRUB-Kernel-Image IDs gezeigt), sollten Sie das Image mit den unten angegebenen Schritten aktualisieren.

So aktualisieren Sie Ihre PV-GRUB-Version

Wenn für Ihre Instance eine ältere Version von PV-GRUB verwendet wird, sollten Sie das Update auf die aktuelle Version durchführen.

  1. Ermitteln Sie das aktuelle PV-GRUB-AKI für Ihre Region und Prozessorarchitektur anhand von Amazon PV-GRUB-Kernel-Image IDs.

  2. Halten Sie Ihre Instance an. Ihre Instance muss angehalten werden, damit das verwendete Kernel-Image geändert werden kann.

    aws ec2 stop-instances --instance-ids instance_id --region region
  3. Ändern Sie das Kernel-Image, das für Ihre Instance verwendet wird.

    aws ec2 modify-instance-attribute --instance-id instance_id --kernel kernel_id --region region
  4. Starten Sie Ihre Instance neu.

    aws ec2 start-instances --instance-ids instance_id --region region