En este documento, se incluye información sobre la solución de problemas sobre una VM que no responde debido a un error irrecuperable del kernel.
Antes de comenzar
- Si deseas registrar la salida del puerto en serie en Cloud Logging, familiarízate con Cloud Logging.
-
Si aún no lo hiciste, configura la autenticación.
La autenticación es el proceso mediante el cual se 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:
Select the tab for how you plan to use the samples on this page:
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
REST
Para usar las muestras de la API de REST en esta página en un entorno de desarrollo local, debes usar las credenciales que proporcionas a la CLI de gcloud.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Para obtener más información, consulta Autentica para usar REST en la documentación de autenticación de Google Cloud .
-
Error irrecuperable del kernel
Un error irrecuperable del kernel puede ocurrir cuando el kernel no puede cargar correctamente los módulos initramfs
, que son necesarios para que se inicie el SO invitado.
Otra forma de error irrecuperable del kernel puede ocurrir en una situación en la que el kernel no sabe cómo manejar una solicitud determinada y se protege mediante la detención. El error irrecuperable del kernel puede ocurrir en una VM de Compute Engine que ejecuta Red Hat, SUSE, CentOS o Ubuntu.
Mensajes de error comunes:
A continuación, se muestran algunos de los eventos de error irrecuperables del kernel más habituales como referencia:
Kernel panic - not syncing: hung_task: blocked tasks
Kernel Panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
Kernel panic - not syncing: NMI: Not continuing
Kernel panic - not syncing: out of memory. panic_on_oom is selected
Kernel panic - not syncing: Fatal Machine check
Causas habituales
El error de pánico del kernel puede ocurrir por varios motivos. A continuación, se muestran algunos de los motivos más habituales:
- La entrada relacionada con el archivo
initramfs
que corresponde al kernel no existe en el archivogrub.cfg
. - El archivo
initramfs
no se genera en el directorio/boot
durante la instalación del kernel. - El archivo
initramfs
solo se genera parcialmente o está dañado.
Síntomas
Cuando experimentas una falla del kernel en una instancia de VM, un síntoma común es que el kernel no te permite conectarte a la VM, incluso cuando usas la consola en serie.
Debes verificar los registros de la consola en serie para identificar el kernel que cargó el SO invitado, por ejemplo:
[ 0.000000] Initializing cgroup subsys cpu [ 0.000000] Initializing cgroup subsys cpuacct [ 0.000000] Linux version 3.10.0-1160.95.1.el7.x86_64 (mockbuild@x86-vm-42.build.eng.bos.redhat.com) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) ) #1 SMP Thu Aug 10 10:46:21 EDT 2023
En el siguiente ejemplo, se muestra un evento de error irrecuperable del kernel debido a problemas de initramfs
:
[ 1.520840] No filesystem could mount root, tried: [ 1.520840] [ 1.521964] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) [ 1.523495] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 3.10.0-1160.95.1.el7.x86_64 #1 [ 1.524932] Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/11/2022 [ 1.526901] Call Trace: [ 1.527421] dump_stack+0x41/0x60 [ 1.527978] panic+0xe7/0x2ac [ 1.528578] mount_block_root+0x2be/0x2e6 [ 1.529693] ? do_early_param+0x95/0x95 [ 1.530441] prepare_namespace+0x135/0x16b [ 1.531237] kernel_init_freeable+0x203/0x22d [ 1.532081] ? rest_init+0xaa/0xaa [ 1.532808] kernel_init+0xa/0x103 [ 1.533395] ret_from_fork+0x35/0x40 [ 1.535229] Kernel Offset: 0x23a00000 from 0xffffffff81000000
Resuelve el error irrecuperable del kernel
Para resolver error irrecuperable del kernel, sigue estos pasos:
Conéctate a la consola en serie y accede a la VM desde la consola de Google Cloud.
Haz clic en Restablecer para la VM en la consola de Google Cloud.
Después de que aparezca la pantalla de presentación de GRUB, selecciona el kernel que funcionaba anteriormente o el kernel de recuperación y, luego, inicia el sistema. Esto hace que la VM se inicie con el kernel seleccionado.
Cuando se puede acceder a la VM, puedes iniciar una conexión SSH a la VM.
Identifica la causa del problema y toma las medidas correspondientes.
Por ejemplo, si falta el archivo
initramfs
o está dañado, completa los siguientes pasos:Genera el archivo
initramfs
correspondiente al kernel original con el comandodracut
:dracut -f /boot/initramfs-
KERNEL_VERSION .imgKERNEL_VERSION Reemplaza
KERNEL_VERSION
por la versión actual del kernel de la VM. Por ejemplo,3.10.0-1160.95.1.el7.x86_64
Actualiza el archivo
grub2.cfg
con el comandogrub2-mkconfig
, por ejemplo:grub2-mkconfig -o /boot/grub2/grub.cfg
Después de que se genere el archivo
initramfs
, puedes reiniciar la VM sin errores.