Grub2はどのデバイスもまったく検出しません

Grub2はどのデバイスもまったく検出しません

Grub 2をインストールしたい1Gb HDDイメージ(Bochsのbximageを使用して作成)があります。

私が知る限り、Grubのインストールは3つの部分で構成されています。

  • boot.img イメージ、最初のセクターを占める
  • core.img イメージは、最初のセクターの後から次のトラックが始まるまでのスペースを占めます。
  • grub.cfgと他のモジュールがある/boot/grub/ディレクトリ。

まず、/boot/grub/ディレクトリにある私のLinux boot.imgイメージを使用します。

次に、次のコマンドを使用してcore.imgイメージを作成しました。

sudo grub-mkimage -v --format=i386-pc -o core.img -p\(hd0,msdos1\)/boot/grub ls ext2 part_msdos

最終ディスクイメージにインストールするには、次のコマンドを使用します。

  • sudo dd if=boot.img of=/dev/loop0 bs=446 count=1上書きを防ぐには、446ブロックサイズを使用してください。MBRのパーティションデータ
  • sudo dd if=core.img of=/dev/loop0 bs=512 seek=1ここでのseek=1目的は、作成したばかりのMBRを上書きすることではありません。

ディスクは、2048セクタで始まり最後のセクタで終わるext2パーティションとしてフォーマットされており、grub.cfg(何もロードしない偽のメニュー項目を含む)を含むboot / grub /ディレクトリと/のモジュールが含まれています。 boot/grub/i386-pc/ ディレクトリ。

Bochs は、この grub インストールを grub> プロンプトで正常に起動しました。 〜のようにこのUbuntuガイドこの動作は grub.cfg が見つからないことを示します。

通話後にls興味深い問題に直面しました。接続されたデバイスがまったくないようです!

問題の性質をより詳細に説明するために、スレーブドライブからイメージを起動すると、回復grub-mkrescueドライブへlsの呼び出しが自分のイメージを表示することが観察されました。そして以前に「存在しなかった」プライマリディスクドライブとext2パーティション。 /boot/grub.cfgが実際にアクセス可能であることを確認しました。

この観察に基づいて、私はcore.imgにいくつかの基本的なモジュールや機能が欠けていると仮定します。しかし、どのように修正しますか?


また、USBスティックを使用して実際のコンピュータでこの練習を実行しましたが、同じことが起こり、問題がBochsにないことを確認できます。

ベストアンサー1

実際には、次のモジュール、特にディスクドライバが欠落していることがわかりましたbiosdisk

OSDev Wikiから:

biosdisk -  This module is required for GRUB 2 to be able to boot from a LiveCD.

おすすめ記事