Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

GRUB(グラブ)とは | 意味や読み方など丁寧でわかりやすい用語解説

GRUB(グラブ)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。

作成日: 更新日:

読み方

日本語表記

グルーブ (グルーヴ)

英語表記

GRUB (グラブ)

用語解説

GRUB(GRand Unified Bootloader)は、コンピュータの電源投入後、オペレーティングシステム(OS)を起動するために最初に実行されるプログラムである。OSを起動する役割を担うことから、ブートローダと呼ばれる。システムエンジニアを目指す上で、GRUBの役割と仕組みを理解することは非常に重要となる。

GRUBの主な役割は、コンピュータの起動時に、どのOSを起動するかを選択させ、選択されたOSをメモリにロードして実行を開始させることである。現代のコンピュータでは、複数のOS(例えば、WindowsとLinux)をインストールして使い分けることが可能である。GRUBは、このようなマルチブート環境において、どのOSを起動するかをユーザーに選択肢として提示し、選択されたOSを起動する。

GRUBの動作は、大きく分けて以下の3つの段階に分けられる。

まず、BIOS(Basic Input/Output System)またはUEFI(Unified Extensible Firmware Interface)によって、GRUBの最初の段階である「stage1」が実行される。BIOS/UEFIは、コンピュータの基本的なハードウェアを初期化し、起動可能なデバイス(通常はハードディスク)を探し、そのデバイスの先頭にあるMBR(Master Boot Record)と呼ばれる領域に格納されたブートローダを実行する。このMBRにインストールされているのがGRUBのstage1であり、非常に小さなプログラムである。

次に、stage1は、ハードディスク上のより大きなプログラムである「stage2」をロードして実行する。stage2は、ファイルシステムを理解する能力を持っており、ハードディスク上の/bootディレクトリなどに格納されているGRUBの設定ファイル(grub.cfg)を読み込むことができる。

最後に、stage2は、grub.cfgに記述された内容に基づいて、起動可能なOSの一覧を画面に表示する。ユーザーがOSを選択すると、stage2は選択されたOSのカーネルをメモリにロードし、実行を開始する。grub.cfgには、各OSのカーネルの場所や、起動時に必要なパラメータなどが記述されている。

GRUBは、Linuxディストリビューションで広く使用されており、その設定ファイルの柔軟性から、様々なカスタマイズが可能である。例えば、起動時に表示されるメニューの順番を変更したり、デフォルトで起動するOSを変更したり、カーネルに特定のパラメータを渡したりすることができる。

GRUBの設定ファイルであるgrub.cfgは、通常、/boot/grub2ディレクトリ(または/boot/grubディレクトリ)に存在する。ただし、grub.cfgを直接編集することは推奨されない。なぜなら、OSのアップデートやカーネルの更新時に、grub.cfgが自動的に再生成される可能性があるため、直接編集した内容が上書きされてしまう可能性があるからである。

代わりに、grub.cfgを生成するために使用されるテンプレートファイルや設定ファイルを編集する。これらのファイルは、/etc/default/grubや/etc/grub.dディレクトリに存在する。これらのファイルを編集し、grub2-mkconfigコマンド(またはgrub-mkconfigコマンド)を実行することで、grub.cfgを再生成することができる。

GRUBは、非常に強力なブートローダであるが、設定を誤るとOSが起動しなくなる可能性がある。そのため、GRUBの設定を変更する際には、事前にバックアップを作成しておくことや、変更内容を十分に理解しておくことが重要となる。また、緊急時に備えて、レスキューモードで起動する方法や、別のブートメディア(USBメモリなど)から起動する方法を事前に確認しておくことも推奨される。

GRUBの理解は、システムエンジニアとしてLinux環境を扱う上で不可欠な知識となる。GRUBの仕組みを理解することで、OSの起動プロセスを制御し、様々なトラブルシューティングに対応できるようになる。

関連コンテンツ