ESP がブート マネージャーを呼び出してブート ローダーの読み込みを開始し、カーネルに渡すまでのプロセスが理解できません。
私が言及した最後のステップでは、NTDETECT または NTOSKRNL がここで呼び出され、その後 WINLOGON または LTASS が呼び出されるかどうか理解できません。または、UEFI GPT ブートの場合は異なりますか?
誰か説明できますか?
答え1
ESP がブート マネージャーを呼び出してブート ローダーの読み込みを開始し、カーネルに渡すまでのプロセスが理解できません。
ブート プロセスは、ESP ではなくファームウェア (EFI) によって実行されます。「ESP」は、ファームウェアが使用するファイル (ブートローダなど) を保持するパーティションにすぎません。
EFI ファームウェアにはブート マネージャーが組み込まれており、設定が NVRAM に保存されます。これにより、ESP から実際にロードするファイルを認識します。
ただし、BOOTMGR や NTLDR のようなものについて言えば、ファームウェアはブート マネージャーとブート ローダーを実際には区別しません。どちらもファームウェアによって起動される .efi アプリケーションにすぎません。(BIOS では、どちらも同じ種類のブート セクターです。)
アプリケーションが OS を選択するためのメニューの表示をサポートしている場合 (NTLDR や BOOTMGR など)、それはブート マネージャーと呼ばれます。OS カーネル自体の起動をサポートしている場合 (WINLOAD など)、それはブート ローダーと呼ばれます。ただし、ファームウェアにとっては、同じ種類のプログラムです。
BIOS では次のようになります。
- ファームウェアは NVRAM データ (通常は「CMOS」または「BIOS 設定」と呼ばれます) を読み取り、どのディスクの MBR を使用するかを指示します。
- ファームウェアは MBR ブート セクターを起動し、次に Windows システム パーティションから BOOTMGR (Windows ブート マネージャーの BIOS バリアント) を起動します。
- Windows ブート マネージャーは BCD を読み取り、必要に応じてメニューを表示し、メインの Windows パーティションから WINLOAD.EXE (Windows ブート ローダーの BIOS バリアント) を起動します。
- Windows ブート ローダーは NTOSKRNL.EXE (メインの Windows カーネル) を起動します。
UEFI の場合:
- ファームウェアは NVRAM データ (EFI 変数) を読み取り、
*.EFI
使用するファイルと、そのファイルをどのディスク上で見つけるかを指示します。 - ファームウェアは、EFI システム パーティションから BOOTMGFW.EFI (Windows ブート マネージャーの EFI バリアント) を起動します。
- Windows ブート マネージャーは BCD を読み取り、必要に応じてメニューを表示し、メインの Windows パーティションから WINLOAD.EFI (Windows ブート ローダーの EFI バリアント) を起動します。
- Windows ブート ローダーは NTOSKRNL.EXE (メインの Windows カーネル) を起動します。
どちらも最終的には同じカーネルを起動します。その後のプロセスも両方のファームウェアタイプで同じです。LSASSなどのWindowsコンポーネント気にしないEFI モードまたは BIOS モードのどちらで起動する場合でも、起動時にはファームウェアの主なタスクはすでに完了しています。