View a markdown version of this page

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

Falls Sie auf Ihren Amazon EC2-Instances einen benutzerdefinierten Kernel benötigen, können Sie mit einem AMI beginnen, das Ihren Anforderungen am ehesten entspricht. Kompilieren Sie den benutzerdefinierten Kernel auf Ihrer Instance und aktualisieren Sie den Bootloader so, 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 Amazon EC2 EC2-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 Instance-Konsolenausgabe im Benutzerhandbuch für Amazon EC2. 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-System 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.

Paravirtuelle AMIs () PV-GRUB

AMIs, die paravirtuelle Virtualisierung (PV) verwenden, verwenden ein System, das während des Startvorgangs aufgerufen wird. PV-GRUB PV-GRUB ist ein paravirtueller Bootloader, der eine gepatchte Version von GNU GRUB 0.97 ausführt. Wenn Sie eine Instanz starten, PV-GRUB wird der Startvorgang gestartet und anschließend der in der Image-Datei angegebene Kernel kettengeladen. menu.lst

PV-GRUB versteht Standard grub.conf - oder menu.lst Befehle, sodass es mit allen derzeit unterstützten Linux-Distributionen funktioniert. 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 paravirtuellen AMIs verwenden standardmäßig eine PV-GRUB AKI (einschließlich aller paravirtuellen Linux-AMIs, die im Schnellstartmenü des Amazon EC2 Launch Wizard verfügbar sind), sodass Sie keine zusätzlichen Schritte unternehmen müssen, 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

PV-GRUB hat die folgenden Einschränkungen:

  • Sie können die 64-Bit-Version von nicht verwenden PV-GRUB , um einen 32-Bit-Kernel zu starten oder umgekehrt.

  • Sie können kein Amazon-Ramdisk-Image (ARI) angeben, wenn Sie ein PV-GRUB AKI verwenden.

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

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

  • Cluster-AMIs werden nicht unterstützt oder benötigen sie nicht PV-GRUB, da sie die vollständige Hardwarevirtualisierung (HVM) verwenden. Während paravirtuelle Instances früher PV-GRUB zum Booten verwendet werden, werden HVM-Instance-Volumes wie tatsächliche Festplatten behandelt, und der Startvorgang ähnelt dem Startvorgang eines Bare-Metal-Betriebssystems mit partitionierter Festplatte und Bootloader.

  • PV-GRUB Versionen 1.03 und früher unterstützen keine GPT-Partitionierung; sie unterstützen nur 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 von GRUB für paravirtuale AMIs

Zum PV-GRUB Booten muss eine menu.lst GRUB-Datei im Image vorhanden sein. Der häufigste Speicherort für diese Datei ist. /boot/grub/menu.lst

Im Folgenden finden Sie ein Beispiel für eine menu.lst Konfigurationsdatei zum Booten eines AMI mit einem PV-GRUB AKI. In diesem Beispiel stehen zwei Kerneleinträge zur Auswahl: Amazon Linux 2018.03 (der ursprüngliche Kernel für dieses AMI) und Vanilla Linux 4.16.4 (eine 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

Sie müssen in Ihrer menu.lst Datei keinen Fallback-Kernel angeben, aber wir empfehlen, dass Sie einen Fallback-Kernel verwenden, wenn Sie einen neuen Kernel testen. PV-GRUBkann auf einen anderen Kernel zurückgreifen, 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 sucht nach den folgenden Speicherorten menu.lst und verwendet dabei den ersten, den es findet:

  • (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 PV-GRUB 1.03 und frühere Versionen nur einen der ersten beiden Standorte in dieser Liste überprüfen.

Amazon PV-GRUB Kernel-Image-IDs

PV-GRUB AKIs sind in allen Amazon EC2 EC2-Regionen mit Ausnahme des asiatisch-pazifischen Raums (Osaka) verfügbar. Es sind AKIs für 32-Bit- und für 64-Bit-Architekturtypen erhältlich. Die meisten modernen AMIs verwenden standardmäßig eine PV-GRUB AKI.

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

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

PV-GRUB ist das einzige in der Region verfügbare AKI. ap-southeast-2 Sie sollten sicherstellen, dass jedes AMI, das Sie in diese Region kopieren möchten, eine Version verwendet PV-GRUB , die in dieser Region verfügbar ist.

Im Folgenden sind die aktuellen AKI-IDs für die einzelnen Regionen aufgeführt. Registrieren Sie neue AMIs, indem Sie ein hd0-AKI verwenden.

Anmerkung

Aus Gründen der Abwärtskompatibilität stellen wir hd00-AKIs weiterhin in Regionen bereit, in denen diese bisher 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 PV-GRUB

Wir empfehlen, immer die neueste Version der PV-GRUB AKI zu verwenden, da nicht alle Versionen der PV-GRUB AKI mit allen Instance-Typen kompatibel sind. Außerdem PV-GRUB sind ältere Versionen von nicht in allen Regionen verfügbar. Wenn Sie also ein AMI, das eine ältere Version verwendet, in eine Region kopieren, die diese Version nicht unterstützt, können Sie Instances, die von diesem AMI gestartet wurden, erst starten, nachdem Sie das Kernel-Image aktualisiert haben. Verwenden Sie die folgenden Verfahren, um die Version Ihrer Instance von zu überprüfen PV-GRUB und sie gegebenenfalls zu aktualisieren.

Um Ihre PV-GRUB Version zu überprüfen
  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 ist PV-GRUB 1.05. Wenn Ihre PV-GRUB Version nicht die neueste Version ist (wie unter gezeigtAmazon PV-GRUB Kernel-Image-IDs), sollten Sie sie wie folgt aktualisieren.

Um Ihre PV-GRUB Version zu aktualisieren

Wenn Ihre Instance eine ältere Version von verwendet PV-GRUB, sollten Sie sie auf die neueste Version aktualisieren.

  1. Identifizieren Sie die neueste PV-GRUB AKI für Ihre Region und Prozessorarchitektur unterAmazon 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