GRUB2チェーンローダー:なぜ動作しないのですか?

GRUB2チェーンローダー:なぜ動作しないのですか?

ドライブに別のパーティションをマウントするには、GRUB2リンクを使用してマルチブートUSBフラッシュドライブを作成しようとしています。動作しません。私欲しくないマルチブートフラッシュドライブの作成方法に関するアドバイスを聞きたいです。これを行う方法はいくつかあります。はいただこの特定のアプローチがうまくいかない理由を見つけることに興味があります。

背景情報:2つのUSBドライブがあります。 USB1とUSB2と呼びます。私は現在、マルチブートフレンドリーな方法でそのうちの1つにDebian Wheezyをインストールしようとしています。 ISOをUSB1(/dev/sdb)に追加すると、次のようになります。

dd conv=notrunc bs=4M if=/path/to/iso of=/dev/sdb

これにより、Debian をインストールできる素晴らしいブータブルドライブが作成されます。また、USB2にGRUB2をインストールすると、次のようにUSB1ロードを正常に接続できます。

search --label --set=root "Debian 7.0.0 i386 1"
chainloader +1
boot

これで問題を解決するには、USB2に2番目のパーティションを作成し、そのパーティションにisoを追加するだけです。

dd conv=notrunc bs=4M if=/path/to/iso of=/dev/sdc2

チェーンローディングが機能しません。エラーメッセージが表示されず、ダッシュが点滅している黒い画面のみが表示されます(応答なし)。 (両方のドライブでこれを試してみたため、ハードウェア障害が原因だとは思わない。)

なぜこれがうまくいかないのですか?異なるドライブをチェーンロードするのと同じドライブに異なるパーティションをチェーンロードすること(正確に同じデータが含まれている場合)の違いは何ですか?

ベストアンサー1

まず、ディスクイメージはパーティションイメージとは異なります。 1つ(ディスクイメージとして見えるもの)の両方を使用しようとしていますが、これは間違っています。dd単にエラーがないとしても、すべてが大丈夫だとは思わないでください。実際のIOエラーが発生しない限り、コマンドは何でも喜んで行います。

ドライブをリンクロードすると、GRUBはマスターブートレコードを見つけます。これはディスクの内容を起動し、ブートコードを含めることです。ただし、分割構造は異なります。コードで始めることもありません。ブートレコードがありますが、さらに離れています。 GRUBもチェーンロードできますが、プログラムは異なります。ディスクイメージをパーティションに入れると、ユーザーフレンドリーなものは作成されず、GRUBは間違いなくそこからMBRを期待しません。代わりにランダムな機械語コードを実行しますが、これは確かにPCには適していません。

この機能を実装するには、Debian パーティションの内容をこのパーティションにコピーし、その上に GRUB をインストールする必要があります。途中で問題が発生しない限り、完全に機能する必要があります。あなたのものを作り直すことを忘れないでください/dev/sdc2

おすすめ記事