View a markdown version of this page

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 ti occorre un kernel personalizzato per le istanze Amazon EC2, puoi iniziare con un'AMI vicina a quella che desideri, quindi puoi compilare il kernel personalizzato sull'istanza e aggiornare il bootloader per puntare 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 Guida per l'utente di Amazon EC2.

AMIs HVM (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 Output della console delle istanze nella Guida per l’utente di Amazon EC2. 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.

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

AMI paravirtuali () PV-GRUB

Le AMI che utilizzano la virtualizzazione paravirtuale (PV) utilizzano un sistema richiamato durante il processo di avvio. PV-GRUB PV-GRUB è un bootloader paravirtuale che esegue una versione con patch di GNU GRUB 0.97. Quando avvii un'istanza, PV-GRUB avvia il processo di avvio e poi carica a catena il kernel specificato dal file dell'immagine. menu.lst

PV-GRUB comprende gli standard grub.conf o menu.lst i comandi, il che le consente di funzionare 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 delle AMI paravirtuali moderne utilizza un PV-GRUB AKI per impostazione predefinita (incluse tutte le AMI Linux paravirtuali disponibili nel menu Quick Start di Amazon EC2 Launch Wizard), quindi non è necessario eseguire passaggi aggiuntivi per utilizzare un kernel diverso sulla propria istanza, a condizione che il kernel che si desidera utilizzare sia compatibile con la 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' PV-GRUB AKI. 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

Limitazioni di PV-GRUB

PV-GRUB presenta le seguenti limitazioni:

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

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

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

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

  • Le AMI cluster non supportano né sono necessarie PV-GRUB, in quanto utilizzano la virtualizzazione hardware completa (HVM). Sebbene le istanze paravirtuali vengano utilizzate PV-GRUB per l'avvio, i volumi delle istanze HVM vengono trattati come dischi reali e il processo di avvio è simile al processo di avvio di un sistema operativo bare metal con disco partizionato e bootloader.

  • PV-GRUB le versioni 1.03 e precedenti non supportano il partizionamento GPT; supportano 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.

Configurazione di GRUB per le AMIs paravirtuali

Per l'avvio PV-GRUB, è necessario che nell'immagine sia presente un menu.lst file GRUB; la posizione più comune per questo file è. /boot/grub/menu.lst

Di seguito è riportato un esempio di file di menu.lst configurazione per l'avvio di un'AMI con un PV-GRUB AKI. In questo esempio, ci sono due voci del kernel tra cui scegliere: Amazon Linux 2018.03 (il kernel originale per questa AMI) e Vanilla Linux 4.16.4 (una versione più recente del kernel Linux Vanilla di). 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 è necessario specificare un kernel di fallback nel menu.lst file, ma si consiglia di utilizzare un kernel di riserva quando si testa un nuovo kernel. PV-GRUBpuò ricorrere a un altro kernel nel caso in cui il nuovo kernel fallisca. Avere un kernel di fallback permette l'avvio dell'istanza anche se il nuovo kernel non viene trovato.

PV-GRUB controlla le seguenti posizionimenu.lst, usando 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

Nota che la versione PV-GRUB 1.03 e le versioni precedenti controllano solo una delle prime due posizioni in questo elenco.

ID delle immagini del PV-GRUB kernel di Amazon

PV-GRUB Gli AKI sono disponibili in tutte le regioni Amazon EC2, esclusa l'Asia Pacifico (Osaka). Esistono AKI per i tipi di architettura a 32 bit e a 64 bit. La maggior parte delle AMI moderne utilizza un PV-GRUB AKI per impostazione predefinita.

Ti consigliamo di utilizzare sempre la versione più recente dell' PV-GRUB AKI, poiché non tutte le versioni dell' PV-GRUB AKI sono compatibili con tutti i tipi di istanze. Usa il seguente comando describe-images per ottenere un elenco degli PV-GRUB AKI per la regione corrente:

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

PV-GRUB è l'unica AKI disponibile nella regione. ap-southeast-2 Dovresti verificare che qualsiasi AMI PV-GRUB che desideri copiare in questa regione utilizzi una versione disponibile in questa regione.

Di seguito sono elencati gli attuali ID AKI per ciascuna regione. Registra nuove AMI utilizzando un AKI hd0.

Nota

Continuiamo a fornire AKI hd00 per compatibilità con le versioni precedenti nelle regioni in cui erano prima 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 (US-West)
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 PV-GRUB

Ti consigliamo di utilizzare sempre la versione più recente dell' PV-GRUB AKI, poiché non tutte le versioni dell' PV-GRUB AKI sono compatibili con tutti i tipi di istanze. Inoltre, le versioni precedenti di non PV-GRUB sono disponibili in tutte le regioni, quindi se copi un'AMI che utilizza una versione precedente in una regione che non supporta tale versione, non potrai avviare le istanze avviate da quell'AMI finché non aggiorni l'immagine del kernel. Utilizza le seguenti procedure per verificare la versione dell'istanza PV-GRUB e aggiornarla se necessario.

Per verificare la tua PV-GRUB versione
  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" } ] }

    Questa immagine del kernel è PV-GRUB 1.05. Se la PV-GRUB versione in uso non è la più recente (come mostrato inID delle immagini del PV-GRUB kernel di Amazon), è necessario aggiornarla utilizzando la procedura seguente.

Per aggiornare la tua PV-GRUB versione

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

  1. Identifica l' PV-GRUB AKI più recente per la tua regione e l'architettura del processore daID delle immagini del PV-GRUB kernel di Amazon.

  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