Salta al contenuto

Perché la mia istanza Linux non si avvia dopo averla cambiata in un'istanza basata su Nitro?

4 minuti di lettura
0

Ho cambiato la mia istanza Amazon Elastic Compute Cloud (Amazon EC2) Linux con un'istanza basata su Nitro e ora non si avvia.

Breve descrizione

Un'istanza Linux potrebbe non avviarsi dopo averla cambiata in un'istanza basata su Nitro per i seguenti motivi:

  • Non hai attivato nell'istanza l'attributo enaSupport per le reti avanzate.
  • Non hai installato nell'istanza il driver dell’Adattatore elastico di rete (ENA).
  • Non hai installato nell'istanza il driver NVMe. Oppure non hai caricato il modulo NVMe nell'immagine initramfs dell'istanza.
  • Hai utilizzato un nome di dispositivo per montare i file system nel file /etc/fstab all'avvio invece di un identificatore universale univoco (UUID) o di un'etichetta.
    Nota: i volumi Amazon Elastic Block Store (Amazon EBS) vengono visualizzati come dispositivi NVMe nelle istanze basate su Nitro. Questo modifica i nomi dei dispositivi.

Risoluzione

Nota: se ricevi errori quando esegui i comandi dell'Interfaccia della linea di comando AWS (AWS CLI), consulta Risoluzione degli errori per AWS CLI. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.

Verifica automaticamente i prerequisiti prima della migrazione

Per verificare automaticamente i prerequisiti quando esegui la migrazione di un'istanza Xen a Nitro, esegui il runbook AWSSupport-MigrateXenToNitroLinux di Automazione AWS Systems Manager.

Oppure esegui lo script nitro_check_script.sh per verificare i prerequisiti prima di cambiare il tipo di istanza in Nitro. Per accedere allo script, consulta nitro_check_script.sh sul sito web GitHub. Per informazioni su ciò che viene controllato dallo script, consulta NitroInstanceChecks sul sito web GitHub.

Per scaricare lo script nitro_check_script.sh, esegui questo comando:

sudo wget https://raw.githubusercontent.com/awslabs/aws-support-tools/refs/heads/master/EC2/NitroInstanceChecks/nitro_check_script.sh -O /tmp/nitro_check_script.sh

Per autorizzare l'ambiente a eseguire lo script, esegui questo comando:

sudo chmod +x /tmp/nitro_check_script.sh

Per eseguire lo script con autorizzazioni root, esegui questo comando:

sudo bash /tmp/nitro_check_script.sh

Nota: devi eseguire lo script come utente root o con sudo. In caso contrario, ricevi il messaggio di errore "This script must be run as root".

Per verificare manualmente i prerequisiti, intraprendi le seguenti azioni.

Verifica di aver attivato le reti avanzate e di aver installato il driver ENA

Verifica se hai attivato le reti avanzate nell'istanza. Se l'istanza non ha l'attributo enaSupport, attiva le reti avanzate.

Per verificare se hai installato il driver ENA, eseguire questo comando:

sudo modinfo ena |grep -i '^version:' || echo "ENA module not available, try modprobe ena"

Se non lo hai installato, installa il driver ENA per l'istanza EC2 Windows. Per installare il driver ENA per un'istanza Linux, consulta Linux kernel driver for Elastic Network Adapter (ENA) family (Driver del kernel Linux per la famiglia di Adattatori elastici di rete (ENA) sul sito web GitHub.

Installa il driver NVMe

Per accedere ai volumi NVMe, devi installare i driver NVMe.

Controlla se hai utilizzato un nome di dispositivo per i punti di montaggio nel file /etc/fstab

Per verificare se hai utilizzato un UUID, esegui questo comando:

cat /etc/fstab |grep -iP 'uuid|dev/'

Esempio di output:

UUID=90e29211-2de8-4967-b0fb-16f51a6e464c / xfs defaults,noatime 1 1

Se non hai utilizzato un UUID, recupera l'UUID per il nome del dispositivo eseguendo questo comando:

lsblk -f device_name |tail -n 1 |awk '{print $4}'

Nota: sostituisci device_name con il nome del tuo dispositivo.

Esempio di output:

90e29211-2de8-4967-b0fb-16f51a6e464c

Prima di modificare il file /etc/fstab, è consigliabile eseguire questo comando per creare una copia del file:

sudo cp /etc/fstab /etc/fstab-`date +%d%m%Y`

Esegui questo comando per aprire il file /etc/fstab:

cat /etc/fstab

Quindi sostituisci il nome del dispositivo con l'UUID:

/dev/nvme0n1p1 / xfs defaults,noatime 1 1

Nota: sostituisci /dev/nvme0n1p1 con l'UUID.

Per verificare di aver aggiornato correttamente il file, esegui nuovamente il comando cat /etc/fstab. Esempio di output:

UUID=90e29211-2de8-4967-b0fb-16f51a6e464c / xfs defaults,noatime 1 1

Assicurati di sostituire tutti i nomi dei dispositivi con gli UUID. Quindi arresta l'istanza. Cambia l'istanza in un'istanza basata su Nitro, quindi avviala.

AWS UFFICIALEAggiornata 8 mesi fa