Kernel forniti dall'utente - Amazon Linux 2

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Kernel forniti dall'utente

Se hai bisogno di un kernel personalizzato sulle tue EC2 istanze Amazon, puoi iniziare con un'AMI simile a quella che desideri, compilare il kernel personalizzato sull'istanza e aggiornare il bootloader in modo che punti al nuovo kernel. Questo processo varia a seconda del tipo di virtualizzazione utilizzato dall'AMI. Per ulteriori informazioni, consulta i tipi di virtualizzazione delle AMI Linux nella Amazon EC2 User Guide.

HVM AMIs (GRUB)

I volumi delle istanze HVM vengono trattati come dischi fisici reali. Il processo di avvio è simile a quello di un sistema operativo bare metal, con un disco partizionato e un bootloader che consente di lavorare con tutte le distribuzioni Linux attualmente supportate. Il bootloader più comune è GRUB o. GRUB2

Per impostazione predefinita, GRUB non invia il suo output alla console dell'istanza, perché questo comporta un ritardo aggiuntivo nell'avvio. Per ulteriori informazioni, consulta l'output della console di istanza nella Amazon EC2 User Guide. Se si sta installando un kernel personalizzato, si dovrebbe prendere in considerazione l'abilitazione dell'output di GRUB.

Non occorre specificare un kernel di fallback, ma suggeriamo di averne uno quando si prova un nuovo kernel. GRUB può ritornare su un altro kernel nel caso in cui quello nuovo non funzioni. Avere un kernel di fallback consente l'avvio dell'istanza anche se il nuovo kernel non viene trovato.

La versione precedente di GRUB per Amazon Linux utilizza/boot/grub/menu.lst. GRUB2 per AL2 usi/etc/default/grub. Per ulteriori informazioni sull'aggiornamento del kernel predefinito nel bootloader, vedere la documentazione per la distribuzione Linux.

Paravirtual AMIs (PV-GRUB)

AMIs che utilizzano la virtualizzazione paravirtual (PV) utilizzano un sistema chiamato PV-GRUB durante il processo di avvio. PV-GRUB è un bootloader paravirtuale che esegue patch della versione GNU GRUB 0.97. Quando avvii un'istanza, PV-GRUB inizia il processo di avvio e carica in sequenza il kernel specificato dal file dell'immagine menu.lst.

PV-GRUB comprende i comandi standard grub.conf o menu.lst, che gli consentono di lavorare con tutte le distribuzioni Linux attualmente supportate. Le distribuzioni precedenti, come Ubuntu 10.04 LTS, Oracle Enterprise Linux o CentOS 5.x, richiedono uno speciale pacchetto di kernel "ec2" o "xen", mentre le distribuzioni più recenti includono i driver necessari nel pacchetto di kernel predefinito.

La maggior parte dei sistemi paravirtuali moderni AMIs utilizza un AKI di PV-GRUB per impostazione predefinita (incluso tutto il Linux paravirtuale disponibile nel AMIs menu Quick Start di Amazon EC2 Launch Wizard), quindi non è necessario eseguire passaggi aggiuntivi per utilizzare un kernel diverso sull'istanza, a condizione che il kernel che si desidera utilizzare sia compatibile con la propria distribuzione. Il modo migliore per eseguire un kernel personalizzato sulla tua istanza è iniziare da un'AMI vicina a quella desiderata, quindi compilare il kernel personalizzato sull'istanza e modificare il file menu.lst per eseguire l'avvio con quel kernel.

È possibile verificare che l'immagine del kernel per un AMI sia un AKI PV-GRUB. Eseguire il comando describe-images (sostituendo l'ID immagine del kernel) e verificare se il campo Name inizia con pv-grub:

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

Limiti di PV-GRUB

PV-GRUB presenta i seguenti limiti:

  • Non è possibile utilizzare la versione a 64 bit di PV-GRUB per avviare un kernel da 32 bit o viceversa.

  • Non è possibile specificare una Amazon ramdisk image (ARI) quando si utilizza un AKI PV-GRUB.

  • AWS ha testato e verificato che PV-GRUB funzioni con questi formati di file system: EXT2,,, JFS EXT3 EXT4, XFS e ReiserFS. Altri formati potrebbero non funzionare.

  • PV-GRUB può avviare kernel compressi tramite i formati di compressione gzip, bzip2, lzo e xz.

  • I cluster AMIs non supportano o non necessitano di PV-GRUB, poiché utilizzano la virtualizzazione hardware completa (HVM). Mentre le istanze paravirtuali utilizzano PV-GRUB per l'avvio, i volumi delle istanze HVM sono trattati come dischi reali e il processo di avvio è simile a quello di un sistema operativo bare metal con disco partizionato e bootloader.

  • Le versioni 1.03 e precedenti di PV-GRUB non supportano il partizionamento GPT, ma solo il partizionamento MBR.

  • Se hai in programma di utilizzare un gestore logico di volumi (LVM) con i volumi Amazon Elastic Block Store (Amazon EBS), ti servirà una partizione di avvio distinta al di fuori del LVM. Potrai così creare volumi logici con il LVM.

Configura GRUB per paravirtual AMIs

Per avviare PV-GRUB, nell'immagine deve essere presente un file menu.lst GRUB; la posizione più comune di questo file è /boot/grub/menu.lst.

Di seguito è riportato un esempio di un file di configurazione menu.lst per l'avvio di un'AMI con un AKI PV-GRUB. In questo esempio è possibile scegliere tra due voci di kernel: Amazon Linux 2018.03 (il kernel originale dell'AMI) e Vanilla Linux 4.16.4 (una versione più recente del kernel Vanilla Linux da https://www.kernel.org/). La voce Vanilla è stata copiata dalla voce originale di questa AMI e i percorsi kernel e initrd sono stati aggiornati sulle nuove posizioni. Il parametro default 0 punta il bootloader sulla prima voce che visualizza (in questo caso, la voce Vanilla) e il parametro fallback 1 punta il bootloader sulla voce successiva in caso di problemi nell'avvio della prima.

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

Non occorre specificare un kernel di fallback nel file menu.lst, ma ti suggeriamo di averne uno quando testi un nuovo kernel. PV-GRUB può ritornare su un altro kernel nel caso in cui quello nuovo non funzioni. Avere un kernel di fallback permette l'avvio dell'istanza anche se il nuovo kernel non viene trovato.

PV-GRUB controlla le seguenti posizioni di menu.lst utilizzando la prima che trova:

  • (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

Le versioni di PV-GRUB fino alla 1.03 controllano solo una delle prime due posizioni nell'elenco.

Immagine del kernel Amazon PV-GRUB IDs

PV-GRUB AKIs sono disponibili in tutte le EC2 regioni Amazon, esclusa l'Asia Pacifico (Osaka). Esistono tipi di architettura sia AKIs a 32 bit che a 64 bit. La maggior parte delle versioni moderne AMIs utilizza un PV-GRUB AKI di default.

Ti suggeriamo di utilizzare sempre la versione più recente dell'AKI PV-GRUB, perché non tutte le versioni sono compatibili con ogni tipo di istanza. Utilizzate il seguente comando describe-images per ottenere un elenco di PV-GRUB per la regione corrente: AKIs

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

PV-GRUB è l'unico AKI disponibile nella regione ap-southeast-2. Devi verificare che le AMI che vuoi copiare su questa regione utilizzino una versione di PV-GRUB disponibile nella regione.

Le seguenti sono le AKI correnti per ogni regione. IDs Registra un nuovo AMIs file usando un AKI hd0.

Nota

Continuiamo a fornire hd00 AKIs per la retrocompatibilità nelle regioni in cui erano precedentemente disponibili.

ap-northeast-1, Asia Pacific (Tokyo)
ID immagine Nome immagine
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
ID immagine Nome immagine
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)
ID immagine Nome immagine
aki-ba5665d9 pv-grub-hd0_1.05-i386.gz
aki-66506305 pv-grub-hd0_1.05-x86_64.gz
eu-central-1, Europe (Frankfurt)
ID immagine Nome immagine
aki-1419e57b pv-grub-hd0_1.05-i386.gz
aki-931fe3fc pv-grub-hd0_1.05-x86_64.gz
eu-west-1, Europe (Ireland)
ID immagine Nome immagine
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)
ID immagine Nome immagine
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)
ID immagine Nome immagine
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 (Stati Uniti occidentali)
ID immagine Nome immagine
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)
ID immagine Nome immagine
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)
ID immagine Nome immagine
aki-7a69931a pv-grub-hd0_1.05-i386.gz
aki-70cb0e10 pv-grub-hd0_1.05-x86_64.gz

Aggiornamento di PV-GRUB

Ti suggeriamo di utilizzare sempre la versione più recente dell'AKI PV-GRUB, perché non tutte le versioni sono compatibili con ogni tipo di istanza. Inoltre, le versioni precedenti di PV-GRUB non sono disponibili in tutte le regioni, quindi se copi un'AMI che utilizza una versione precedente su una regione che non la supporta, non potrai avviare istanze da quell'AMI fino a quando non aggiorni l'immagine del kernel. Utilizza le seguenti procedure per verificare la versione di PV-GRUB dell'istanza e aggiornarla se necessario.

Per verificare la versione di PV-GRUB
  1. Trovare l'ID kernel per l'istanza.

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

    L'ID kernel per l'istanza è aki-70cb0e10.

  2. Visualizzare le informazioni sulla versione dell'ID kernel.

    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" } ] }

    L'immagine del kernel è PV-GRUB 1.05. Se la versione di PV-GRUB non è la più recente (come indicato in Immagine del kernel Amazon PV-GRUB IDs), devi aggiornarla utilizzando la seguente procedura.

Per aggiornare la versione di PV-GRUB

Se la tua istanza utilizza una versione precedente di PV-GRUB, devi aggiornarla alla versione più recente.

  1. Identificare l'AKI PV-GRUB più recente per la regione e l'architettura del processore da Immagine del kernel Amazon PV-GRUB IDs.

  2. Arrestare l'istanza. La tua istanza deve essere arrestata per modificare l'immagine del kernel utilizzata.

    aws ec2 stop-instances --instance-ids instance_id --region region
  3. Modificare l'immagine del kernel utilizzata per l'istanza.

    aws ec2 modify-instance-attribute --instance-id instance_id --kernel kernel_id --region region
  4. Riavviare l'istanza.

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