Saltar al contenido

¿Por qué no arranca mi instancia de Linux después de cambiarla por una instancia basada en Nitro?

4 minutos de lectura
0

He cambiado mi instancia de Linux de Amazon Elastic Compute Cloud (Amazon EC2) a una instancia basada en Nitro y ahora no arranca.

Descripción corta

Es posible que una instancia de Linux no arranque después de cambiarla a una instancia basada en Nitro por los siguientes motivos:

  • No has activado el atributo enaSupport de redes mejoradas en la instancia.
  • No has instalado el controlador Elastic Network Adapter (ENA) en la instancia.
  • No has instalado el controlador NVMe en la instancia. O bien, no has cargado el módulo NVMe en la imagen initramfs de la instancia.
  • Has utilizado un nombre de dispositivo para montar los sistemas de archivos en el archivo /etc/fstab durante el arranque en lugar de un identificador universal único (UUID) o etiqueta.
    Nota: Los volúmenes de Amazon Elastic Block Store (Amazon EBS) aparecen como dispositivos NVMe para las instancias basadas en Nitro. Esto cambia los nombres de los dispositivos.

Resolución

Nota: Si se muestran errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), consulta Solución de problemas de AWS CLI. Además, asegúrate de utilizar la versión más reciente de la AWS CLI.

Comprobación automática de los requisitos previos antes de migrar

Para comprobar automáticamente los requisitos previos al migrar una instancia de Xen a Nitro, ejecuta el runbook AWSSupport-MigrateXenToNitroLinux de Automatización de AWS Systems Manager.

O bien, ejecuta el script nitro_check_script.sh para comprobar los requisitos previos antes de cambiar el tipo de instancia a Nitro. Para acceder al script, consulta nitro_check_script.sh en el sitio web de GitHub. Para obtener información sobre lo que comprueba el script, consulta NitroInstanceChecks en el sitio web de GitHub.

Para descargar el script nitro_check_script.sh, ejecuta el siguiente 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

Para dar permiso a tu entorno para ejecutar el script, ejecuta el siguiente comando:

sudo chmod +x /tmp/nitro_check_script.sh

Para ejecutar el script con permisos raíz, ejecuta el siguiente comando:

sudo bash /tmp/nitro_check_script.sh

Nota: Debes ejecutar el script como usuario raíz o con sudo. De lo contrario, recibirás el mensaje de error «This script must be run as root».

Para comprobar manualmente los requisitos previos, haz lo siguiente.

Comprobar que has activado la red mejorada e instalado el controlador ENA

Comprueba si has activado las redes mejoradas en la instancia. Si la instancia no tiene el atributo enaSupport, activa las redes mejoradas.

Para comprobar si has instalado el controlador ENA, ejecuta el siguiente comando:

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

Si no has instalado el controlador ENA, instala el controlador ENA para la instancia de EC2 de Windows. Para instalar el controlador ENA para una instancia de Linux, consulta Controlador del kernel de Linux para la familia Elastic Network Adapter (ENA) en el sitio web de GitHub.

Instalación del controlador NVMe

Para acceder a los volúmenes de NVMe, debes instalar los controladores NVMe.

Comprobar si se ha utilizado un nombre de dispositivo para los puntos de montaje en el archivo /etc/fstab

Para comprobar si has utilizado un UUID, ejecuta el siguiente comando:

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

Resultado de ejemplo:

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

Si no has utilizado un UUID, ejecuta el siguiente comando para recuperar el UUID del nombre del dispositivo:

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

Nota: Sustituye device_name por el nombre de tu dispositivo.

Resultado de ejemplo:

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

Antes de editar el archivo /etc/fstab, se recomienda ejecutar el siguiente comando para hacer una copia del archivo:

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

Ejecuta el siguiente comando para abrir el archivo /etc/fstab:

cat /etc/fstab

A continuación, sustituye el nombre del dispositivo por el UUID:

/dev/nvme0n1p1 / xfs defaults,noatime 1 1

Nota: Sustituye /dev/nvme0n1p1 por el UUID.

Para comprobar que has actualizado correctamente el archivo, vuelve a ejecutar el comando cat /etc/fstab. Resultado de ejemplo:

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

Asegúrate de reemplazar todos los nombres de los dispositivos por UUID. A continuación, detén tu instancia. Cambia la instancia a una instancia basada en Nitro y, a continuación, inicia la instancia.

OFICIAL DE AWSActualizada hace 7 meses