Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

F.2. ブートプロセスの詳細

ブートプロセスの始まりは使用しているハードウェアプラットフォームによって異なりますが、カーネルが検出され、ブートローダーでロードされると、その後はデフォルトのブートプロセスはすべてのアーキテクチャーにおいて共通です。この章では x86アーキテクチャーに焦点を当てます。

F.2.1. ファームウェアインターフェース

F.2.1.1. BIOS ベースの x86 システム

BIOS (Basic Input/Output System) は、ブートプロセスの第 1 手順を制御するだけでなく、周辺デバイスに最下位レベルのインターフェースを提供するファームウェアインターフェースです。BIOS を装備した x86 システムでは、プログラムは読み取り専用の固定メモリーに書き込まれるため、常に使用できます。システムのブート時に、プロセッサーはシステムメモリーの最後で BIOS プログラムを探して、実行します。
BIOS がロードされると、BIOS はシステムをテストし、周辺機器の検索と確認を行い、システムをブートするための有効なデバイスを見付けます。BIOS は通常ブート可能なメディア用に存在する光学式ドライブまたは USB ストレージデバイスを確認します。それがない場合は、システムのハードドライブを検索します。ほとんどの場合、ブート時にドライブが検索される順序は BIOS の設定で管理されており、その設定でプライマリ IDE バス上のマスター IDE またはブートフラグセットがある SATA デバイスを探します。次に、BIOS は マスターブートレコード (MBR) と呼ばれるこのデバイスの先頭セクターにあるプログラムをメモリーにロードします。MBR のサイズは 512 バイトしかなく、MBR にはブートローダーと呼ばれるマシンをブートするためのマシンコード命令と併せてパーティションテーブルも含まれています。BIOS がブートローダープログラムを見付けてメモリーにロードすると、ブートプロセスの制御はブートローダーに任せます。
第 1 ステージブートローダーは MBR にある小規模なマシンコードバイナリです。その唯一のジョブは、第 2 ステージブートローダー (GRUB) を検索して、メモリーに最初の部分をロードすることです。

F.2.1.2. UEFI ベースの x86 システム

BIOS と同様に、UEFI (Unified Extensible Firmware Interface) は、(ブートサービス により) ブートプロセスを制御し、(ランタイムサービス により) システムファームウェアとオペレーティングシステムの間にインターフェースを提供するよう設計されています。BIOS と違う点は、UEFI は CPU に依存しない独自のアーキテクチャーと独自のデバイスドライバを装備していることです。UEFI はパーティションをマウントして、特定のファイルシステムを読み取ることができます。
x86 コンピューターに UEFI ブートが装備されている場合、インターフェースはシステムストレージで EFI システムパーティション (ESP) としてパーティションをマークする特定の グローバル一意識別子 (GUID) が付いたパーティションを検索します。このパーティションには、EFI アーキテクチャー用にコンパイルされたアプリケーションがあります。そのアプリケーションには、オペレーティングシステム用のブートローダーとユーティリティソフトウェアが含まれている場合があります。UEFI システムには、デフォルト設定からシステムをブートできる、またはユーザーにブートするオペレーティングシステムを選択するようプロンプトを表示する EFI ブートマネージャ が含まれています。手動と自動どちらの方法でもブートローダーが選択されると、UEFI はそれをメモリーに読み込み、ブートプロセスの制御をブートローダーに任せます。