Solución de errores de arranque de UEFI en máquinas virtuales Linux de Azure
Nota:
CentOS al que se hace referencia en este artículo es una distribución de Linux y llegará al final de la vida útil (EOL). Considere 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 para el arranque de la generación 1 del BIOS y el arranque de la interfaz de firmware extensible unificada (UEFI) de la generación 2.
Al implementar máquinas virtuales Linux (VM) de generación 2 en Azure, es posible que se produzcan errores de arranque de 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 no se puede acceder al servidor.
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.
En la captura de pantalla de diagnósticos de arranque se muestran 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ó una imagen de arranque.
No se cargó ningún sistema operativo. Es posible que la máquina virtual esté configurada 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
Inicio de PXE a través de IPv4
Antes de iniciar los pasos de la solución
Para realizar la reparación de 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: partición UEFI en la imagen de arranque está dañada, asegúrese de que tiene acceso a la CLI de Azure o a Azure Cloud Shell.
Escenario 1: Falta la partición UEFI en la imagen de arranque
Si falta o elimina la partición del cargador de arranque UEFI, la máquina virtual Linux de generación 2 no podrá arrancar.
Para resolver este 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 obtener 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 elección del número de partición no importa siempre que los puntos inicial y final del sector sean correctos. Se eligen los puntos inicial y final del sector correctos porque el sistema operativo es capaz de determinar los sectores que faltan.
- Asegúrese de que el sector final no está ocupado por ninguna otra partición dentro del disco. La elección de los valores predeterminados debe ser suficiente aquí.
Las imágenes de asociados de Linux de Azure tienen el siguiente número de partición, puntos de inicio del sector y puntos finales del sector:
Distribución del sistema operativo Linux Número de partición EFI Inicio del sector Sector End 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 obtener 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 podrá arrancar. Para resolver este 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 obtener 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 en seco 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 obtener 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 de arranque
Si falta toda la partición /boot u otro contenido importante y no se puede recuperar, la restauración de 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.
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de