GNU/Linux >> Belajar Linux >  >> Linux

pygrub:Tidak dapat menemukan partisi yang berisi kernel

Pendahuluan:
Baru-baru ini setelah saya memutakhirkan banyak paket dalam VM Xen 4.4 DOMU, pygrub tidak dapat mem-boot VM lagi.
Selama pembaruan keamanan, grub2(grup-pc) yang diinstal, yang tidak pernah menimbulkan masalah sebelumnya dengan pygrub, diperbarui dan tiba-tiba itu membuat masalah untuk mem-boot VM. Berikut adalah pesan kesalahan yang saya dapatkan saat mencoba mem-bootnya:
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

Saya memiliki VM lain dengan sistem Debian yang sama yang dapat melakukan booting dengan baik. Setelah membandingkan grub.conf dll. satu sama lain, saya tidak dapat melihat perbedaan apa pun.
Jika saya meluncurkan pygrub dengan disk gambar VM sebagai argumen, saya biasanya disajikan dengan menu Grub dan kemudian memulai dengan kesalahan-kesalahan biasa. Kali ini saya tidak mendapatkan menu sama sekali dan mendapatkan pesan kesalahan berikut:
/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

Setelah googling sebentar, saya menemukan situs ini yang membicarakan masalah ini juga meskipun dengan volume LVM alih-alih dengan gambar disk file. Tetapi prinsipnya sama:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=745419
Jadi dalam resume:Jika pygrub melihat sesuatu selain nol pada awalnya 512 byte dari disk gambar, ia kembali dengan kesalahan ini:'Tidak dapat menemukan partisi yang berisi kernel'

Penyebab:
Selama pemutakhiran grub-pc, skrip paket meminta saya untuk menentukan sektor boot tempat grub harus diinstal dan kebetulan saya memilih yang diusulkan '/ dev/xvda2' yang merupakan kesalahan.

Solusi pencegahan:
Saya seharusnya membiarkan partisi gambar tidak tersentuh dan melanjutkan pemutakhiran Grub-PC tanpa grub ditulis di sektor boot, dan kemudian menjalankan perintah:
update-grub

Solusi Saat Ini:
Timpa sektor boot (512 byte) dari file gambar dengan nol.

Perintah:
dd conv=notrunc if=/dev/zero of=/virtual/xen/domains/VM/disk.img bs=512 count=1
Catatan: Saya menggunakan opsi conv=notrunc untuk memastikan file output tidak akan terpotong menjadi 512 byte setelah ditimpa.

Hasil:
Saya kemudian bisa mem-boot VM dengan baik lagi.


Linux
  1. Tidak Dapat Menemukan -lm?

  2. Ubuntu Tidak Bisa Boot Setelah Pembaruan Kernel?

  3. Tidak dapat menemukan kesalahan pkg-config

  1. Mengubah ukuran partisi boot

  2. Lewati modul kernel saat boot

  3. Temukan direktori yang berisi sejumlah file

  1. Linux – Kernel Tidak Dapat Menemukan File /dev/sda Saat Boot?

  2. Bagaimana cara membuat Partisi Sistem EFI?

  3. grub2-install:error:/boot/efi tidak terlihat seperti partisi EFI pada instalasi baru Gentoo