GNU/Linux >> LINUX-Kenntnisse >  >> Linux

pygrub:Partition mit Kernel kann nicht gefunden werden

Einführung:
In letzter Zeit, nachdem ich viele Pakete in einer Xen 4.4 DOMU VM aktualisiert hatte, konnte Pygrub die VM nicht mehr booten.
Während des Sicherheitsupdates installierte grub2 (grup-pc), was vorher nie Probleme verursachte mit pygrub, wurde aktualisiert und plötzlich verursachte es Probleme beim Booten der VM. Hier ist die Fehlermeldung, die ich beim Booten erhalten habe:
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

Ich habe eine andere VM mit demselben Debian-System, die gut bootet. Nachdem ich die grub.conf etc. miteinander verglichen habe konnte ich keine Unterschiede feststellen.
Wenn ich die pygrub mit der Image Disk der VM als Argument gestartet habe, wird mir normalerweise das Grub Menü präsentiert und dann rausgeschmissen die normalen Fehler. Diesmal bekam ich überhaupt kein Menü und bekam folgende Fehlermeldung:
/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

Nachdem ich ein wenig gegoogelt hatte, fand ich diese Seite, die ebenfalls über dieses Problem spricht, allerdings mit einem LVM-Volume statt mit einem Datei-Disk-Image. Aber das Prinzip war dasselbe:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=745419
Also zusammenfassend:Wenn pygrub im ersten etwas anderes als Nullen sieht 512 Bytes der Image-Festplatte, gibt es diesen Fehler zurück:'Keine Partition mit Kernel gefunden'

Ursache:
Während des Upgrades von grub-pc forderte mich das Paketskript auf, den Bootsektor anzugeben, in dem grub installiert werden soll, und ich habe zufällig den vorgeschlagenen Sektor „/dev/xvda2“ ausgewählt, was ein Fehler war.

Vorbeugende Lösung:
Ich hätte die Image-Partition unberührt lassen und das Upgrade von Grub-PC fortsetzen sollen, ohne dass Grub in den Bootsektor geschrieben wird, und anschließend den Befehl ausführen:
update-grub

Aktuelle Lösung:
Überschreiben Sie den Bootsektor (512 Byte) der Image-Datei mit Nullen.

Befehl:
dd conv=notrunc if=/dev/zero of=/virtual/xen/domains/VM/disk.img bs=512 count=1
Hinweis: Ich verwende die Option conv=notrunc um sicherzustellen, dass die Ausgabedatei nach dem Überschreiben nicht auf 512 Bytes gekürzt wird.

Ergebnis:
Danach konnte ich die VM wieder gut booten.


Linux
  1. Netbsd 5.1 Ndis-Kernel-Kompilierungsfehler?

  2. Grub-install:Dieses GPT-Partitionslabel enthält keine Bios-Boot-Partition?

  3. Ist eine /boot-Partition immer notwendig?

  4. Finden Sie Verzeichnisse, die eine bestimmte Anzahl von Dateien enthalten

  5. Wie erstelle ich eine EFI-Systempartition?

FEHLER:Der Kernel-Quellbaum für den aktuell ausgeführten Kernel – CentOS / RHEL / AlmaLinux kann nicht gefunden werden

Linux – Vm kann nicht gestartet werden:Fehler 13:Ungültiges oder nicht unterstütztes ausführbares Format?

Kernelmodul beim Booten überspringen

Warum 100 MB ext2-Startpartition für Linux empfohlen?

grub2-install:Fehler:/boot/efi sieht bei einer frischen Gentoo-Installation nicht wie eine EFI-Partition aus

Bootloader finden