Linux におけるブートローダーとは
BIOS/UEFIがそのタスクを完了すると、制御をブートプロセスの次の段階であるブートローダーに引き渡します。Linux におけるブートローダーは、オペレーティングシステムのカーネルをメモリにロードし、それを実行する小さなプログラムです。これは、システムのファームウェアと Linux カーネルの間の橋渡し役を果たします。
Linux ブートローダーの役割
Linux ブートローダーの主な責務は、単純ですが極めて重要です。
- オペレーティングシステムの選択: マルチブート環境の場合、非 Linux システムを含むさまざまな OS を起動するためのメニューを表示できます。
- カーネルの選択: ロードする Linux カーネルのバージョンを選択でき、トラブルシューティングやテストに役立ちます。
- カーネルパラメータの引き渡し: カーネルが正しく起動するために必要な重要なパラメータを指定します。
最も一般的なLinux ブートローダーは GRUB(GRand Unified Bootloader)であり、おそらくあなたが使用しているものです。LILO、SYSLINUX、Coreboot などの他のブートローダーも存在しますが、このレッスンでは GRUB に焦点を当てます。
GRUB における一般的なカーネルパラメータ
ブートローダーの主な目的はカーネルをロードすることですが、どこからどのようにロードするかについての指示が必要です。これらの指示はカーネルパラメータとして提供されます。通常、起動中にGRUBメニューで 'e' キーを押すことで、これらのパラメータを表示または編集できます。
遭遇する可能性のある最も一般的なパラメータをいくつか示します。
initrd: 初期 RAM ディスクの場所を指定します。これはメモリにロードされる一時的なルートファイルシステムです。次のレッスンでさらに詳しく説明します。BOOT_IMAGE: ロードされるべきカーネルイメージファイルのパスを定義します。root: 実際のルートファイルシステムの場所を指します。カーネルはこのパスを使用してinitプロセスを見つけます。これはデバイス名(例:/dev/sda1)または UUID で表されることがよくあります。ro: ルートファイルシステムを最初に読み取り専用モードでマウントするようにカーネルに指示する標準的なパラメータです。これは、ファイルシステムチェックが実行される前に変更が行われないようにするための安全策です。quiet: このパラメータは、ほとんどの詳細なブートメッセージを抑制し、よりクリーンで冗長性の少ない起動画面を提供します。splash: テキストメッセージの代わりに、ブートプロセス中にグラフィカルなスプラッシュスクリーンが表示されるようにします。