En este documento, se explica por qué no se inicia tu instancia de Compute Engine de Linux y se solucionan problemas habituales.
Por lo general, una instancia de procesamiento que no se inicia muestra uno o más de los siguientes síntomas:
- La instancia de procesamiento está en el estado
RUNNING, pero no puedes conectarte a ella con SSH. - La salida de la consola en serie se detiene a mitad de la secuencia de inicio o termina en un mensaje de emergencia o rescate.
- La salida de la consola en serie contiene
FAILED,error:,Kernel panicoemergency mode.
Para resolver un problema de arranque, primero identifica la causa y, luego, soluciónalo desde la instancia de procesamiento si aún puedes conectarte o sin conexión adjuntando el disco de arranque a otra instancia de procesamiento.
Si la instancia de procesamiento termina de iniciarse, pero no puedes conectarte a ella, consulta Solución de problemas de SSH.
Antes de comenzar
- Asegúrate de que la instancia de procesamiento escriba la salida de la consola en serie. La salida del puerto en serie está disponible mientras se ejecuta la instancia de procesamiento. Para conservarla después de que se detenga la instancia de procesamiento, habilita el registro del puerto en serie en Cloud Logging. Para obtener más información, consulta Visualiza la puerto en serie serie.
-
Si aún no lo hiciste, configura la autenticación.
La autenticación verifica tu identidad para acceder a los servicios y las APIs de Google Cloud . Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:
-
Instala Google Cloud CLI. Después de la instalación, inicializa Google Cloud CLI con el siguiente comando:
gcloud initSi usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.
- Configura una región y una zona predeterminadas.
-
Detecta la causa automáticamente
Antes de leer el resultado de la consola en serie de forma manual, usa una de las siguientes herramientas. Cada uno lee el resultado del arranque más reciente de la instancia de procesamiento, informa la causa más probable y vincula a la sección correspondiente de este documento.
Console
En la consola de Google Cloud , ve a la página Instancias de VM.
En la fila de la instancia de procesamiento, haz clic en SSH.
Si la conexión falla, en el diálogo de conexión, haz clic en Solucionar problemas. El solucionador de problemas ejecuta verificaciones de conectividad, incluida una verificación de inicio que analiza el resultado de la consola en serie.
gcloud
Para verificar una instancia de procesamiento a la que no puedes conectarte con SSH, ejecuta el solucionador de problemas de SSH de gcloud CLI, que ejecuta verificaciones de conectividad y una verificación de inicio:
gcloud compute ssh INSTANCE_NAME --zone=ZONE --troubleshoot
Para verificar la secuencia de inicio directamente, ejecuta el comando de diagnóstico de inicio:
Para usar este comando, asegúrate de haber instalado el componente de comandos alfa.
gcloud alpha compute diagnose boot INSTANCE_NAME --zone=ZONE
Reemplaza lo siguiente:
INSTANCE_NAME: Es el nombre de la instancia de procesamiento.ZONE: la zona que contiene la instancia de procesamiento.
Si se detecta un problema de inicio, el resultado indica la causa y vincula a la solución. Si no se encuentra ningún problema, continúa con los pasos manuales.
Cómo leer la salida de la consola en serie
Si las herramientas no detectan un problema o si deseas confirmar la causa, lee el resultado de la consola en serie por tu cuenta:
Console
En la consola de Google Cloud , ve a la página Instancias de VM.
Selecciona la instancia de procesamiento para la que deseas ver el resultado del puerto en serie.
En Registros, haz clic en Puerto en serie 1 (consola).
gcloud
gcloud compute instances get-serial-port-output INSTANCE_NAME --zone=ZONE
Reemplaza lo siguiente:
INSTANCE_NAME: Es el nombre de la instancia de procesamiento.ZONE: Es la zona que contiene la instancia de procesamiento.
Ir al último inicio Las líneas útiles suelen estar inmediatamente antes de la primera línea [FAILED], la línea Kernel panic o el mensaje de emergencia. Compara lo que encuentres con las firmas de las secciones que siguen.
Problemas de inicio comunes
En las siguientes secciones, se enumeran las fallas de inicio comunes en las instancias de procesamiento de Linux, sus firmas de salida de la consola en serie y cómo resolverlas. La mayoría de las resoluciones requieren que conectes el disco de arranque a una VM de rescate, como se describe en Corrige el disco sin conexión.
No se puede montar la entrada de archivo /etc/fstab
Síntoma: La salida de la consola serial contiene líneas como las siguientes, seguidas de You are in emergency mode:
UUID=1234abcd-... does not exist
Timed out waiting for device /dev/sdb1
mount: special device /dev/sdb1 does not exist
[DEPEND] Dependency failed for /mnt/data.mount
Causa: Una entrada en /etc/fstab hace referencia a un dispositivo o UUID que no está
conectado a la instancia de procesamiento, o no se puede activar el sistema de archivos. El servicio systemd detiene el inicio y pasa al modo de emergencia.
Resolución: En la VM de recuperación, corrige la entrada en /etc/fstab en el disco activado o quítala. Para conocer el procedimiento, consulta Soluciona problemas de inicio de VM de Linux debido a errores fstab.
Para conocer la opción de activación que impide que un dispositivo faltante bloquee el arranque, consulta Cómo activar el disco.
GRUB no puede cargar su configuración ni el kernel
Síntoma: El inicio se detiene en un mensaje de GRUB y el resultado de la consola en serie contiene líneas como las siguientes:
error: file '/boot/grub/grub.cfg' not found
error: file '/vmlinuz-6.1.0-18-amd64' not found
error: no such partition
error: no such device
error: unknown filesystem
error: you need to load the kernel first
grub rescue>
Minimal BASH-like line editing is supported
Causa: El cargador de arranque GRUB no puede encontrar su archivo de configuración, sus módulos o el kernel y el disco RAM inicial a los que se refiere la configuración. Este problema ocurre después de una actualización de paquete fallida, un cambio en el diseño de la partición, una partición /boot corrupta o reformateada, o un disco clonado cuyos UUID del sistema de archivos cambiaron.
Resolución: En la VM de rescate, activa el disco de arranque y, luego, ingresa a un entorno de chroot, como se describe en Rescata una VM y, luego, vuelve a generar el archivo de configuración de GRUB, como se describe en Configura el bootloader.
Si no se puede reparar el cargador de arranque, restablece el disco a partir de una instantánea.
El disco RAM inicial no puede activar el sistema de archivos raíz
Síntoma: La salida de la consola serial contiene líneas como las siguientes:
dracut-initqueue[452]: Warning: dracut-initqueue timeout - starting timeout scripts
dracut: FATAL: ...
Failed to mount /sysroot
ALERT! UUID=1234abcd-... does not exist. Dropping to a shell!
Gave up waiting for root file system device
VFS: Unable to mount root fs on unknown-block(0,0)
Causa: Se inició el disco RAM inicial (initramfs), pero no se pudo encontrar ni activar el sistema de archivos raíz. Las causas comunes son un parámetro del kernel root= o un UUID que ya no coincide con el disco, una imagen initramfs a la que le falta el controlador del disco o una imagen initramfs dañada. En las series de máquinas
que usan la interfaz de disco NVMe, una configuración de arranque que nombra el
disco por una ruta de acceso del dispositivo, como /dev/sda, ya no coincide. En su lugar, usa
el UUID.
Resolución: Confirma que el sistema de archivos raíz que busca el disco RAM inicial exista en el disco activado y, luego, vuelve a compilar el disco RAM inicial para tu sistema operativo. Para conocer el procedimiento, consulta Soluciona problemas de inicio de VM de Linux debido al error irrecuperable del kernel y Cómo corregir el disco sin conexión.
Daños en el sistema de archivos
Síntoma: La salida de la consola serial contiene líneas como las siguientes:
Bad magic number in super-block
EXT4-fs error (device sda1): ...
XFS (sda1): Metadata corruption detected
XFS (sda1): log mount/recovery failed
BTRFS error (device sda1): ...
UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.
Causa: El sistema de archivos del disco de inicio está dañado, por lo general, después de un apagado incorrecto, un disco lleno o un error de E/S.
Resolución: Crea una instantánea del disco. Luego, en la VM de rescate, verifica y repara el sistema de archivos en el disco desactivado como se describe en Identifica el motivo por el que el disco de arranque no se inicia. Si la verificación no puede reparar el sistema de archivos, restablece el disco desde una instantánea.
Error irrecuperable del kernel
Síntoma: La salida de la consola serie contiene Kernel panic - not
syncing: seguido del motivo, por ejemplo, Attempted to kill init!, Fatal exception, hung_task: blocked tasks, Out of memory, Fatal
Machine check o NMI: Not continuing. Una imagen del kernel dañada se detiene antes con -- System halted.
Causa: El kernel detectó un error irrecuperable. El motivo después de los
dos puntos identifica la categoría: un init con fallas, una verificación de máquina
de hardware, un pánico por agotamiento de la memoria o una imagen de kernel dañada.
Resolución: Restablece la instancia de procesamiento. Si el error irrecuperable se repite, consulta Soluciona problemas de inicio de VM de Linux debido al error irrecuperable del kernel.
No se carga la política de SELinux
Síntoma: El resultado de la consola en serie contiene uno de los siguientes elementos y el inicio se detiene:
Failed to load SELinux policy
Unable to load SELinux policy
También es posible que veas Warning -- SELinux targeted policy relabel is
required, que no es un error: la instancia de procesamiento vuelve a etiquetar el sistema de archivos
y, luego, se reinicia por sí sola.
Causa: Falta el almacén de políticas de SELinux en el disco o está dañado, o bien las etiquetas de archivo son incoherentes después de una restauración o un cambio sin conexión.
Resolución: En la VM de rescate, marca el disco activado para un nuevo etiquetado completo de SELinux en el próximo arranque o reinstala los paquetes de políticas de SELinux para tu sistema operativo si el almacén de políticas está dañado. En las imágenes del SO basadas en RHEL, puedes permitir que se inicie la instancia de procesamiento mientras reparas la política. Para ello, configura SELinux en modo permisivo, como se describe en Cómo cambiar SELinux al modo permisivo.
El sistema no puede iniciar el proceso de init
Síntoma: La salida de la consola serial contiene líneas como las siguientes:
Failed to switch root
Target filesystem doesn't have requested /sbin/init
No working init found
run-init: /sbin/init: No such file or directory
/sbin/init: error while loading shared libraries: ...
Causa: Se activó el sistema de archivos raíz, pero falta el programa init, como systemd, no se puede ejecutar o depende de una biblioteca compartida que falta. Este problema suele producirse después de una actualización de paquete interrumpida
o un restablecimiento incompleto.
Resolución: En la VM de recuperación, ingresa un entorno chroot como
se describe en
Recupera una VM, verifica
que el programa init exista y que sus bibliotecas estén intactas y, si
no lo están, reinstala el paquete del sistema init con el administrador de paquetes de tu
distribución.
Modo de emergencia y cuenta raíz bloqueada
Síntoma: El resultado de la consola en serie termina con uno de los siguientes mensajes:
You are in emergency mode. After logging in, type "journalctl -xb" to view system logs
Give root password for maintenance (or press Control-D to continue):
Cannot open access to console, the root account is locked.
Causa: Una unidad falló durante el inicio y systemd se detuvo en el destino de
emergencia. En las imágenes de SO proporcionadas por Google, la cuenta raíz no tiene contraseña, por lo que no se puede usar el shell de emergencia desde la consola en serie.
Resolución: Las líneas que preceden al nombre del mensaje de emergencia indican la unidad que falla. Por lo general, la falla se debe a uno de los siguientes problemas:
- No se puede activar la entrada de archivo
/etc/fstab - El disco RAM inicial no puede activar el sistema de archivos raíz
- Daños en el sistema de archivos
Soluciona la causa sin conexión, como se describe en Cómo solucionar el problema del disco sin conexión. No intentes usar el shell de emergencia.
El firmware no puede encontrar un disco de arranque
Síntoma: El resultado de la consola en serie contiene uno de los siguientes mensajes antes de cualquier mensaje del kernel:
No bootable device.
BdsDxe: failed to load Boot0001
Invalid partition table!
Verification failed: (0x1A) Security Violation
Causa: El disco de arranque no está conectado como dispositivo de arranque, su tabla de particiones o registro de arranque están dañados o, en una instancia de VM protegida con Arranque seguro, el cargador de arranque o el kernel no están firmados correctamente.
Resolución: Confirma que el disco esté conectado como el disco de arranque de la instancia de procesamiento. Consulta Desconecta y vuelve a conectar discos. Si la tabla de particiones o el registro de inicio están dañados, repara el bootloader como se describe en GRUB no puede cargar su configuración o el kernel. No se puede corregir una infracción del inicio seguro editando el disco: restablece un kernel y un cargador de arranque firmados, o inhabilita el inicio seguro en la instancia de procesamiento como se describe en Modifica las opciones de VM protegida en una instancia de VM.
Cómo reparar el disco sin conexión
La mayoría de los problemas de inicio no se pueden solucionar desde la instancia de procesamiento, ya que esta nunca llega a la solicitud de acceso. En su lugar, conecta el disco de arranque a una VM de recuperación temporal, actívalo, realiza el cambio y vuelve a mover el disco. Para conocer el procedimiento, consulta Recupera una VM inaccesible.
Las resoluciones de este documento suponen que el disco de arranque original está conectado y activado en una VM de recuperación. Antes de cambiar el disco, crea una instantánea para poder restablecerlo si falla la reparación. Para conocer el procedimiento, consulta Crea instantáneas de disco estándar y de archivo.
Restablece la instancia de procesamiento si no se puede reparar el disco
Si ninguna de las resoluciones funciona o si no se puede reparar el sistema de archivos, restablece el disco de arranque a partir de una instantánea o crea una instancia de procesamiento nueva a partir de una instantánea o una imagen de SO personalizada, y mueve tus datos a ella.
¿Qué sigue?
- Recupera una VM inaccesible
- Visualiza la puerto en serie en serie
- Soluciona problemas de errores de SSH.
- Crea instantáneas de disco estándar y de archivo