GRUB (GRand Unified Bootloader) は、Linux や他のオペレーティングシステムを起動するためのブートローダーです。コンピュータが起動する際、GRUB はインストールされたオペレーティングシステムの選択肢を提供し、ユーザーが起動するオペレーティングシステムを選択できるようにします。また、異なるカーネルバージョンやカスタムブートオプションを指定することもできます。
GRUB は、ファイルシステムを理解し、カーネルイメージやブートローダーの位置を見つけることができます。これにより、複数のオペレーティングシステムが同じディスク上に存在する場合でも、それらを起動することができます。
GRUB は、柔軟性が高く、設定ファイルを編集することで起動時の動作をカスタマイズできます。また、グラフィカルなブートメニューを表示することも可能です。
GRUB の主な特徴は以下の通りです。
- ファイルシステムを解釈し、ファイルシステム上のディレクトリパスでブートイメージを検出可能です。
- シェル機能を実装しています。
- 複数のファイルシステムをサポートしています。
- ジオメトリの変換に依存しません。
- LBA (Logical Block Addressing) モードをサポートし、BIOS が LBA モードに対応していれば 1024 シリンダ以降のパーティションからブート可能です。
- ディスクレスシステムをサポートしています。
- 設定の変更後には、grub-install コマンドを使用して新しい GRUB を MBR と /boot/grub ディレクトリにインストールします。
- 一般的な設定ファイルは /boot/grub/grub.cfg ですが、システムによって異なる場合があります。
- Linux システムの起動時に GRUB ブートローダーからカーネルに渡されたパラメーターは /proc/cmdline ファイルで確認可能です。
- GRUB2 の設定ファイルは /boot/grub/grub.cfg であり、直接編集する代わりに /etc/default/grub ファイルおよび /etc/grub.d ディレクトリ内のファイルに設定内容を記述し、grub-mkconfig コマンドで設定内容を反映します。
- GRUB2 では機能ごとにモジュールが用意されており、モジュールを使う際には insmod でロードするモジュールを指定します。
LPIC GRUB