オンラインで多くのコンテンツを読んだ後、スタートアップマネージャーがどのように働くかがますます混乱し始めました。ブートマネージャ(rEFIndなど)がアップデートやファームウェア関連の項目ではないことがわかります(間違っている場合は修正してください)。私は今、次のような理解を得ました。
BIOSシステムの場合、BIOSファームウェアはコンピュータ上のすべてのディスクを認識すると予想します(どのディスクのパーティションも認識しません)。コンピュータに内蔵ハードドライブと外部CDが接続されているとします。これにより、BIOSから1つを選択し、ハードドライブまたはCDのMBRにあるブートローダを読み取ることができます。ここで、ハードドライブにWindowsとLinuxがインストールされているとします。不明な部分は次のとおりです。 GRUBをブートマネージャとブートローダの両方にインストールした場合は、ハードドライブからブートすることを選択した後、GRUBブートローダを読み込んで実行して次を呼び出すことを意味しますか? GRUBスタートアップマネージャー?それでは、GRUBブートマネージャはコンピュータのさまざまなシステムを認識し、まだGRUBの一部であるWindowsブートローダまたはLinuxブートローダを呼び出しますか?
UEFIシステムでは、ファームウェアはパーティションテーブルとコンピュータに接続されているすべてのディスクを認識するため、すでにブートマネージャであるように見えます。したがって、EFIシステムパーティションにブートローダを書き込むだけで、ファームウェアから起動するときに使用するブートローダを選択できます。そうなんですか?しかし、UEFIシステムで利用可能なrEFIndなどのブートマネージャがまだあることがわかりました。ファームウェアがすでにブートマネージャのように動作している場合、それらはどんな役に立ちますか?さらに、rEFIndはファームウェアの内容と見なされますか、または特定のディスクのEFIシステムパーティションにインストールされているいくつかのアプリケーションと見なされますか?
答え1
基本オペレーティングシステムが起動する前に実行され、他のプログラムの起動に関連するすべてのコードはブートローダです。ほとんどのコンピュータとほとんどの組み込みデバイスには、一連のブートローダがあります。 ROMまたはフラッシュメモリのコードは、フラッシュメモリまたはディスクドライブから別のコードフラグメントをロードし、次に他のコードフラグメントをロードするなどの操作を実行します。 BIOSはブートローダ(おそらく1つあります)、reFIndはブートローダ、Grubはブートローダなどです。
一部のブートローダは他のコードスニペットをロードして分岐する以外は何もしませんが、ほとんどは設定データの読み取り、接続された周辺機器の検出、ハードウェアテスト、デバイスの初期化、ストレージとネットワークデバイスの列挙、次にロードする項目の決定、メッセージの表示などの他のタスクを実行します。画面からユーザー入力を聞き、ユーザーが起動プロセスに影響を与えることができるようにします。
ブートマネージャは、ユーザーが複数のオペレーティングシステムから選択できる方法を含む特別な種類のブートローダです。 Grubブートローダは実際にGrubブートマネージャを「呼び出し」しません。ブートマネージャ機能はGrubの1つの側面です。
一部のPCレガシーBIOSには、ユーザーが複数のデバイスから選択できる粗いブートマネージャ機能があります。従来のBIOSはディスクの最初の512バイトのみをロードし、そこからコードを実行できるため制限されます。 UEFIには、ユーザーがFATパーティションのファイルから選択できる、より強力なブートマネージャがあります。
ブートローダがファームウェアと見なされるかどうかは、ファームウェアの定義方法によって異なります。 BIOSとUEFIは、「ストレージデバイスにインストールされておらず、コンピュータハードウェアに付属しています」という定義によるファームウェアですが、reFIndとGrubはそうではありません。 「オペレーティングシステムに依存しない」という定義によると、reFIndとGrubはどちらもファームウェアです。