GNU/Linux >> Znalost Linux >  >> Linux

pygrub:Nelze najít oddíl obsahující jádro

Úvod:
V poslední době poté, co jsem upgradoval mnoho balíčků ve virtuálním počítači Xen 4.4 DOMU, pygrub již nemohl spustit virtuální počítač.
Během aktualizace zabezpečení nainstalovaný grub2(grup-pc), který nikdy předtím nevytvářel žádné problémy s pygrub, byl aktualizován a najednou to způsobilo problémy se spuštěním VM. Zde je chybová zpráva, kterou jsem dostal při pokusu o spuštění:
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

Mám další VM se stejným systémem Debian, který se dobře bootuje. Po vzájemném porovnání grub.conf atd. jsem neviděl žádné rozdíly.
Pokud jsem spustil pygrub s diskem obrazu virtuálního počítače jako argumentem, normálně se mi zobrazí nabídka Grub a poté se spustí normální chyby. Tentokrát jsem nedostal žádnou nabídku a dostal jsem následující chybovou zprávu:
/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

Po troše googlování jsem našel tuto stránku, která o tomto problému také mluví, i když se svazkem LVM místo s obrazem disku souboru. Ale princip byl stejný:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=745419
Takže v resumé:Pokud pygrub vidí něco jiného než nuly v prvním 512 bajtů disku s obrazem, vrátí se s touto chybou:'Nelze najít oddíl obsahující jádro'

Příčina:
Během upgradu grub-pc mě skript balíčku požádal, abych specifikoval spouštěcí sektor, kam by se měl grub nainstalovat, a náhodou jsem vybral navrhovaný „/dev/xvda2“, což byla chyba.

Preventivní řešení:
Měl jsem ponechat diskový oddíl nedotčený a pokračovat v upgradu Grub-PC, aniž by byl grub zapsán do spouštěcího sektoru, a poté spustit příkaz:
update-grub

Současné řešení:
Přepište zaváděcí sektor (512 bajtů) souboru obrázku nulami.

Příkaz:
dd conv=notrunc if=/dev/zero of=/virtual/xen/domains/VM/disk.img bs=512 count=1
Poznámka: Používám volbu conv=notrunc abyste se ujistili, že výstupní soubor nebude po přepsání zkrácen na 512 bajtů.

Výsledek:
Mohl bych pak znovu dobře spustit VM.


Linux
  1. Nemůžete najít -lm?

  2. Grub-install:Tento štítek Gpt Partition Label neobsahuje žádný Bios Boot Partition?

  3. Nelze najít chybu pkg-config

  1. Při bootování přeskočte modul jádra

  2. Najděte adresáře obsahující určitý počet souborů

  3. Jak vytvořit systémový oddíl EFI?

  1. Apt-get Build-dep nemůže najít zdrojový balíček?

  2. Chyba kompilace jádra Netbsd 5.1 Ndis?

  3. grub2-install:chyba:/boot/efi nevypadá jako EFI oddíl na nové instalaci Gentoo