Solución de errores de inicio UEFI en máquinas virtuales Linux de Azure
Se aplica a: ✔️ Máquinas virtuales Linux
Nota:
CentOS al que se hace referencia en este artículo es una distribución de Linux y llegará al final del ciclo de vida (EOL). Tenga en cuenta su uso y planifique en consecuencia. Para obtener más información, consulte Guía de fin de vida de CentOS.
Las imágenes de asociados de Linux en Azure Marketplace se etiquetan y configuran tanto para el arranque de la generación 1 del BIOS como para el arranque unificado de la interfaz de firmware extensible (UEFI) de la generación 2.
Al implementar máquinas virtuales Linux de generación 2 en Azure, es posible que encuentre errores de arranque UEFI. En este artículo se describen algunos escenarios en los que se producen errores de arranque de UEFI y se proporcionan soluciones.
Síntomas
Al implementar una máquina virtual Linux de generación 2 en Azure, se produce un error en el arranque y el servidor no es accesible.
Identificación de errores de arranque de UEFI
Compruebe el estado actual de la máquina virtual mediante el diagnóstico de arranque de Azure.
La captura de pantalla de diagnósticos de arranque muestra los siguientes mensajes de error:
Error 1
Resumen de arranque de máquina virtual
- Dispositivo desconocido
El cargador de arranque no cargó un sistema operativo. - Disco SCSI (0,0)
El cargador de arranque no cargó un sistema operativo. - Disco SCSI (0,1)
El cargador de arranque no cargó un sistema operativo. - Adaptador de red (000D3A4DD64D)
No se encontró ninguna imagen de arranque.
No se cargó ningún sistema operativo. Es posible que la máquina virtual se configure incorrectamente. Salga y vuelva a configurar la máquina virtual o haga clic en Reiniciar para volver a intentar la secuencia de arranque actual.
- Dispositivo desconocido
Error 2
Iniciar PXE a través de IPv4
Antes de iniciar los pasos de la solución
Para realizar la reparación de la máquina virtual sin conexión necesaria para el escenario 1: falta la partición UEFI en la imagen de arranque y el escenario 2: La partición UEFI en la imagen de arranque está dañada, asegúrese de que tiene acceso a la CLI de Azure o Azure Cloud Shell.
Escenario 1: Falta la partición UEFI en la imagen de arranque
Si falta o se elimina la partición del cargador de arranque UEFI, la máquina virtual Linux de generación 2 no se iniciará.
Para resolver el problema, siga estos pasos:
Use el comando az vm repair create para crear una máquina virtual de reparación. La máquina virtual de reparación tendrá una copia del disco del sistema operativo para la máquina virtual no funcional conectada. Para más información, consulte Reparación de una máquina virtual Linux mediante los comandos de reparación de máquinas virtuales de Azure.
Vuelva a crear la partición mediante los siguientes comandos:
root@repair-centos7:~# gdisk /dev/sdc GPT fdisk (gdisk) version 1.0.3 Partition table scan: MBR: protective BSD: not present APM: not present GPT: present Found valid GPT with protective MBR; using GPT. Command (? for help): p Disk /dev/sdc: 134217728 sectors, 64.0 GiB Model: Virtual Disk Sector size (logical/physical): 512/4096 bytes Disk identifier (GUID): <Disk GUID> Partition table holds up to 128 entries Main partition table begins at sector 2 and ends at sector 33 First usable sector is 34, last usable sector is 134217694 Partitions will be aligned on 2048-sector boundaries Total free space is 1019837 sectors (498.0 MiB) Number Start (sector) End (sector) Size Code Name 1 1026048 3123199 1024.0 MiB 0700 2 3123200 134215679 62.5 GiB 8E00 14 2048 10239 4.0 MiB EF02 Command (? for help): n Partition number (3-128, default 3): First sector (34-134217694, default = 10240) or {+-}size{KMGTP}: 10240 Last sector (10240-1026047, default = 1026047) or {+-}size{KMGTP}: 1026047 Current type is 'Linux filesystem' Hex code or GUID (L to show codes, Enter = 8300): ef00 Changed type of partition to 'EFI System' Command (? for help): p Disk /dev/sdc: 134217728 sectors, 64.0 GiB Model: Virtual Disk Sector size (logical/physical): 512/4096 bytes Disk identifier (GUID): <Disk GUID> Partition table holds up to 128 entries Main partition table begins at sector 2 and ends at sector 33 First usable sector is 34, last usable sector is 134217694 Partitions will be aligned on 2048-sector boundaries Total free space is 4029 sectors (2.0 MiB) Number Start (sector) End (sector) Size Code Name 1 1026048 3123199 1024.0 MiB 0700 2 3123200 134215679 62.5 GiB 8E00 3 10240 1026047 496.0 MiB EF00 EFI System 14 2048 10239 4.0 MiB EF02 Command (? for help): w Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING PARTITIONS!! Do you want to proceed? (Y/N): Y OK; writing new GUID partition table (GPT) to /dev/sdc. Warning: The kernel is still using the old partition table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8) The operation has completed successfully.
Importante
- Reemplace por
/dev/sdc
la copia correspondiente del dispositivo de disco del sistema operativo (SO). - La opción de número de partición no importa siempre que los puntos iniciales y finales del sector sean correctos. Se eligen los puntos iniciales y finales correctos del sector porque el sistema operativo puede determinar los sectores que faltan.
- Asegúrese de que el sector final no esté ocupado por ninguna otra partición dentro del disco. Elegir los valores predeterminados debe ser suficiente aquí.
Las imágenes de asociados de Linux de Azure tienen el número de partición siguiente, los puntos de inicio del sector y los puntos de conexión del sector:
Distribución del sistema operativo Linux Número de partición EFI Inicio del sector Fin del sector CentOS 7 15 10240 1024000 CentOS 8 15 10240 1024000 Debian 10 15 8192 262143 Debian 11 15 8192 262143 RHEL 7 1 2048 1026047 RHEL 8 15 10240 1024000 Oracle Linux 7 15 10240 1024000 Oracle Linux 8 15 10240 1024000 Ubuntu 18.04 15 10240 227327 Ubuntu 20.04 15 10240 227327 SLES 12 2 6144 1054719 SLES 15 2 6144 1054719 - Reemplace por
Una vez que se vuelva a crear la partición, restaure la máquina virtual intercambiando el disco del sistema operativo reparado con el disco del sistema operativo original de la máquina virtual mediante el comando az vm repair restore . Para más información, consulte el paso 5 en Reparación de una máquina virtual Linux mediante los comandos de reparación de máquinas virtuales de Azure.
Escenario 2: la partición UEFI en la imagen de arranque está dañada
Si la partición de arranque UEFI está dañada, la máquina virtual Linux de generación 2 no se iniciará. Para resolver el problema, siga estos pasos:
Use el comando az vm repair create para crear una máquina virtual de reparación. La máquina virtual de reparación tendrá una copia del disco del sistema operativo para la máquina virtual no funcional conectada. Para más información, consulte Reparación de una máquina virtual Linux mediante los comandos de reparación de máquinas virtuales de Azure.
Limpie la partición dañada mediante los siguientes comandos:
root@repair-centos7:~# gdisk -l /dev/sdc GPT fdisk (gdisk) version 1.0.3 Partition table scan: MBR: protective BSD: not present APM: not present GPT: present Found valid GPT with protective MBR; using GPT. Disk /dev/sdc: 134217728 sectors, 64.0 GiB Model: Virtual Disk Sector size (logical/physical): 512/4096 bytes Disk identifier (GUID): <Disk GUID> Partition table holds up to 128 entries Main partition table begins at sector 2 and ends at sector 33 First usable sector is 34, last usable sector is 134217694 Partitions will be aligned on 2048-sector boundaries Total free space is 4029 sectors (2.0 MiB) Number Start (sector) End (sector) Size Code Name 1 1026048 3123199 1024.0 MiB 0700 2 3123200 134215679 62.5 GiB 8E00 3 10240 1026047 496.0 MiB EF00 EFI System 14 2048 10239 4.0 MiB EF02 root@repair-centos7:~# fsck.vfat -n /dev/sdc3 fsck.fat 4.1 (2017-01-24) 0x25: Dirty bit is set. Fs was not properly unmounted and some data may be corrupt. Automatically removing dirty bit. Leaving filesystem unchanged. /dev/sdc3: 19 files, 1438/63326 clusters root@repair-centos7:~# fsck.vfat /dev/sdc3 fsck.fat 4.1 (2017-01-24) 0x25: Dirty bit is set. Fs was not properly unmounted and some data may be corrupt. 1) Remove dirty bit 2) No action ? 1 Perform changes ? (y/n) y /dev/sdc3: 19 files, 1438/63326 clusters root@repair-centos7:~# fsck.vfat /dev/sdc3 fsck.fat 4.1 (2017-01-24) /dev/sdc3: 19 files, 1438/63326 clusters
Importante
- Reemplace por
/dev/sdc
la copia correspondiente del dispositivo de disco del sistema operativo. - Realice siempre una copia de seguridad del disco del sistema operativo y realice una ejecución seca con la
-n
opción antes de realizar la comprobación del sistema de archivos mencionada anteriormente. - El
dosfsck
comando se puede usar para realizar la comprobación del sistema de archivos vfat. Ambos comandos son los mismos. Para obtener más información, consulte fsck.vfat.
- Reemplace por
Una vez limpiada la partición, restaure la máquina virtual intercambiando el disco del sistema operativo reparado con el disco del sistema operativo original de la máquina virtual mediante el comando az vm repair restore . Para más información, consulte el paso 5 en Reparación de una máquina virtual Linux mediante los comandos de reparación de máquinas virtuales de Azure.
Escenario 3: Se elimina todo el contenido de la partición /boot
Si falta la partición /boot completa u otro contenido importante y no se puede recuperar, restaurar la máquina virtual desde una copia de seguridad es la única opción. Para obtener más información, consulte Cómo restaurar los datos de Azure VM en el portal de Azure.
Ponte en contacto con nosotros para obtener ayuda
Si tiene preguntas o necesita ayuda, cree una solicitud de soporte o busque consejo en la comunidad de Azure. También puede enviar comentarios sobre el producto con los comentarios de la comunidad de Azure.