GNU/Linux >> Tutoriales Linux >  >> Linux

pygrub:no se puede encontrar la partición que contiene el kernel

Introducción:
Últimamente, después de actualizar muchos paquetes en una máquina virtual Xen 4.4 DOMU, pygrub ya no pudo iniciar la máquina virtual.
Durante la actualización de seguridad, se instaló grub2 (grup-pc), que nunca antes había creado ningún problema con pygrub, se actualizó y de repente creó problemas para arrancar la máquina virtual. Este es el mensaje de error que recibí al intentar iniciarlo:
Parsing config from /etc/xen/VM.cfg
libxl: error: libxl_bootloader.c:628:bootloader_finished: bootloader failed - consult logfile /var/log/xen/bootloader.32.log
libxl: error: libxl_exec.c:118:libxl_report_child_exitstatus: bootloader [-1] exited with error status 1
libxl: error: libxl_create.c:1024:domcreate_rebuild_done: cannot (re-)build domain: -3
libxl: error: libxl_dom.c:35:libxl__domain_type: unable to get domain type for domid=32
Unable to attach console
libxl: error: libxl_exec.c:118:libxl_report_child_exitstatus: console child [0] exited with error status 1

Tengo otra máquina virtual con el mismo sistema Debian que arranca bien. Después de comparar grub.conf, etc. entre sí, no pude ver ninguna diferencia.
Si abrí pygrub con el disco de imagen de la máquina virtual como argumento, normalmente aparece el menú Grub y luego sale con los errores normales. Esta vez no obtuve ningún menú y recibí el siguiente mensaje de error:
/usr/lib/xen-4.4/bin/pygrub /virtual/xen/VM/disk.img
Traceback (most recent call last):
File "/usr/lib/xen-4.4/bin/pygrub", line 839, in
raise RuntimeError, "Unable to find partition containing kernel"
RuntimeError: Unable to find partition containing kernel

Después de buscar un poco en Google, encontré este sitio que también habla sobre este problema, aunque con un volumen LVM en lugar de una imagen de disco de archivo. Pero el principio era el mismo:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=745419
En resumen:si pygrub ve algo más que ceros en la primera 512 bytes del disco de imagen, regresa con este error:'No se pudo encontrar la partición que contiene el kernel'

Causa:
Durante la actualización de grub-pc, la secuencia de comandos del paquete me pidió que especificara el sector de arranque donde debería instalarse grub y seleccioné el propuesto '/dev/xvda2', lo cual fue un error.

Solución preventiva:
Debería haber dejado intacta la partición de la imagen y continuar con la actualización de Grub-PC sin escribir grub en el sector de arranque, y luego ejecutar el comando:
update-grub

Solución actual:
Sobrescriba el sector de arranque (512 bytes) del archivo de imagen con ceros.

Comando:
dd conv=notrunc if=/dev/zero of=/virtual/xen/domains/VM/disk.img bs=512 count=1
Nota: Uso la opción conv=notrunc para asegurarse de que el archivo de salida no se trunque a 512 bytes después de sobrescribir.

Resultado:
Entonces podría volver a iniciar bien la máquina virtual.


Linux
  1. ¿Error de compilación del núcleo Netbsd 5.1 Ndis?

  2. ¿Ubuntu no arranca después de la actualización del kernel?

  3. No se puede encontrar el error de pkg-config

  4. Buscar directorios que contengan un cierto número de archivos

  5. grub2-install:error:/boot/efi no parece una partición EFI en una instalación nueva de Gentoo

ERROR:no se puede encontrar el árbol de fuentes del kernel para el kernel que se está ejecutando actualmente:CentOS / RHEL / AlmaLinux

¿Apt-get Build-dep no puede encontrar un paquete fuente?

Error:¿No se puede descargar el video?

Linux - No se puede iniciar Vm:Error 13:¿Formato ejecutable no válido o no compatible?

Error de LUKS durante el arranque

Buscar gestor de arranque