GRUB2: "nativedisk" および "chainloader" コマンド

GRUB2:

~から文書知っている:

Chain-loading is only supported on PC BIOS and EFI platforms.

nativediskコマンドでデフォルトドライバ(コマンドで提供)を使用できますかchainloader?そうでなければなぜですか?この機能はまだ実装されていないか、理論的には不可能ですか?

ベストアンサー1

私が知る限り、これら2つの機能は互いに独立しています。

nativediskこれはGRUBがディスクにアクセスする方法の1つにすぎません。ただし、ファームウェアが接続されたブートローダを持つディスクへのアクセスをサポートしていない場合は、接続された2番目のブートローダにも独自のドライバを含める必要があります。そうしないと、それ自体が起動プロセスを続行できない可能性があります。外部ヘルプなしでディスクからロードされたため、アクセスできません。 (2番目のブートローダがGRUBドライバに依存している場合、これは実際のチェーンロードではなくGRUB用の追加モジュールと似ています。)

チェーンローディングをサポートするには、GRUBがファームウェアとまったく同じ方法でチェーンブートローダーをロードできる必要があります。 PC BIOSの場合、ロードされたコードを既知のメモリアドレスにコピーしてそのアドレスにジャンプします。 EFIの場合、EFIブートサービスは必要な機能を提供します。デフォルトでは、GRUB2はEFIファームウェアに「私の代わりにこのファイルを実行してください」と通知すると、ファームウェアはこれを行います。

他のアーキテクチャでは、ファームウェアはGRUBのロード中に簡単に元に戻せない操作を実行できます。あるいは、他のアーキテクチャのチェーンローディングサポートを追加する必要はありません。

新しいアーキテクチャのチェーンローディングを実装するときは、ファームウェアが何をしているのかを理解して複製する必要があります。通常、ファームウェアは、ブートローダが起動するハードウェアに関するいくつかの情報をブートローダに提供します。ファームウェアが実行できない機能を拡張するためにGRUBnativediskドライバを使用すると、問題が発生する可能性があります。ファームウェアが必要なブート情報を提供できない場合、チェーンロードルーチンはブートローダをチェーンロードできますか?これらすべてはプラットフォームによって異なります。あるプラットフォームでは可能ですが、別のプラットフォームでは不可能かもしれません。

おすすめ記事