3. ブートプロセス:ブートローダー

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: テキストメッセージの代わりに、ブートプロセス中にグラフィカルなスプラッシュスクリーンが表示されるようにします。

ログインして学習進捗を保存

サインイン

演習

練習あるのみです!GRUB ブートローダーとその設定に関する理解を深めるための実践的なラボを以下に示します。

  1. Linux で GRUB2 ブートメニューをカスタマイズする - GRUB2 のプライマリ設定ファイルを変更してブートメニュー設定を変更し、それらの変更を適用する練習をします。

このラボは、概念を実際のシナリオに適用し、ブートローダー管理への自信を築くのに役立ちます。

クイズ

起動メッセージが表示されないようにするカーネルパラメータは何ですか?単一の英単語(小文字)で回答してください。