GNU/Linux >> Linux Esercitazione >  >> Linux

pygrub:impossibile trovare la partizione contenente il kernel

Introduzione:
Ultimamente, dopo aver aggiornato molti pacchetti in una VM Xen 4.4 DOMU, pygrub non poteva più avviare la VM.
Durante l'aggiornamento della sicurezza, grub2(grup-pc) installato prima non ha mai creato problemi con pygrub, è stato aggiornato e all'improvviso ha creato problemi per avviare la VM. Ecco il messaggio di errore che ho ricevuto quando ho provato ad avviarlo:
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

Ho un'altra VM con lo stesso sistema Debian che si avvia bene. Dopo aver confrontato grub.conf ecc. tra loro non ho potuto vedere alcuna differenza.
Se ho avviato pygrub con il disco immagine della VM come argomento, normalmente mi viene presentato il menu Grub e quindi esco con gli errori normali. Questa volta non ho ricevuto alcun menu e ho ricevuto il seguente messaggio di errore:
/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

Dopo aver cercato un po' su Google ho trovato questo sito che parla anche di questo problema anche se con un volume LVM invece che con un'immagine disco di file. Ma il principio era lo stesso:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=745419
Quindi nel curriculum:se pygrub vede qualcosa di diverso da zero nel primo 512 byte del disco immagine, ritorna con questo errore:'Impossibile trovare la partizione contenente il kernel'

Causa:
Durante l'aggiornamento di grub-pc lo script del pacchetto mi ha chiesto di specificare il settore di avvio in cui installare grub e mi è capitato di selezionare quello proposto '/dev/xvda2' che è stato un errore.

Soluzione preventiva:
Avrei dovuto lasciare intatta la partizione dell'immagine e continuare l'aggiornamento di Grub-PC senza che grub fosse scritto nel settore di avvio, quindi eseguire il comando:
update-grub

Soluzione attuale:
Sovrascrivi il settore di avvio (512 byte) del file immagine con zeri.

Comando:
dd conv=notrunc if=/dev/zero of=/virtual/xen/domains/VM/disk.img bs=512 count=1
Nota: Uso l'opzione conv=notrunc per assicurarsi che il file di output non venga troncato a 512 byte dopo la sovrascrittura.

Risultato:
Potrei quindi riavviare bene la VM.


Linux
  1. Non riesci a trovare -lm?

  2. Ubuntu non si avvia dopo l'aggiornamento del kernel?

  3. Grub-install:questa etichetta di partizione Gpt non contiene partizione di avvio del BIOS?

  4. Impossibile trovare l'errore di configurazione di pkg

  5. Ridimensionamento della partizione di avvio

ERRORE:impossibile trovare l'albero dei sorgenti del kernel per il kernel attualmente in esecuzione – CentOS / RHEL / AlmaLinux

Linux – Il kernel non riesce a trovare il file /dev/sda durante l'avvio?

Errore:impossibile scaricare il video?

Linux – Impossibile avviare Vm:errore 13:formato eseguibile non valido o non supportato?

grub2-install:errore:/boot/efi non sembra una partizione EFI su una nuova installazione di Gentoo

Trova bootloader