GNU/Linux >> Linux の 問題 >  >> Linux

pygrub:カーネルを含むパーティションが見つかりません

はじめに:
最近、Xen 4.4 DOMU VMで多くのパッケージをアップグレードした後、pygrubはVMを起動できなくなりました。
セキュリティ更新中に、インストールされたgrub2(grup-pc)は、これまで問題を引き起こしませんでした。 pygrubを使用すると、更新され、突然VMの起動に問題が発生しました。起動しようとしたときに表示されるエラーメッセージは次のとおりです。
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

同じDebianシステムを搭載した別のVMがあり、正常に起動します。 grub.confなどを比較したところ、違いは見られませんでした。
VMのイメージディスクを引数としてpygrubを起動すると、通常はGrubメニューが表示されてからキックアウトします。通常のエラー。今回はメニューがまったく表示されず、次のエラーメッセージが表示されました。
/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

Googelingを少し行った後、ファイルディスクイメージではなくLVMボリュームを使用しているにもかかわらず、この問題についても説明しているこのサイトを見つけました。しかし、原則は同じでした:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=745419
履歴書:pygrubが最初にゼロ以外のものを見つけた場合512バイトのイメージディスクの場合、次のエラーが返されます:'カーネルを含むパーティションが見つかりません'

原因:
grub-pcのアップグレード中に、パッケージスクリプトから、grubをインストールするブートセクターを指定するように求められましたが、提案された「/ dev/xvda2」を選択しました。これは間違いでした。

予防策:
イメージパーティションをそのままにして、ブートセクタにgrubを書き込まずにGrub-PCのアップグレードを続行し、その後、次のコマンドを実行する必要があります:
update-grub

現在の解決策:
イメージファイルのブートセクタ(512バイト)をゼロで上書きします。

コマンド:
dd conv=notrunc if=/dev/zero of=/virtual/xen/domains/VM/disk.img bs=512 count=1
注: オプションconv =notruncを使用します 上書き後に出力ファイルが512バイトに切り捨てられないようにするため。

結果:
その後、VMを正常に起動できました。


Linux
  1. Netbsd 5.1 Ndisカーネルコンパイルエラー?

  2. Grub-install:このGptパーティションラベルにはBIOSブートパーティションが含まれていませんか?

  3. Linux で 100MB の ext2 ブート パーティションが推奨されるのはなぜですか?

  1. Apt-get Build-depはソースパッケージを見つけることができませんか?

  2. /boot パーティションは常に必要ですか?

  3. 起動中の LUKS エラー

  1. Linux –カーネルは起動中に/ dev / sdaファイルを見つけることができませんか?

  2. エラー:ビデオをダウンロードできませんか?

  3. -lmが見つかりませんか?