Red Hat Enterprise Linux 7(RHEL 7)では、IntelとAMDの64ビット (x86_64)、 およびIBM Power System(ppc64)向けのデフォルトのブートローダーとして「GRUB2」(GRand Unified Bootloader version 2)を採用している。ブートローダーは、OS起動に先立つ処理を担当する、縁の下の力持ち的なプログラムである。地味な存在であるが、Linuxのインフラエンジニアならぜひ習得しておきたい知識の1つだ。

 GRUB 2は、RHEL 6で使われていたGRUBの上位バージョンに相当する。ただし、仕組みや設定方法がガラリと変わっている。この記事では、GRUBなら多少は知っているという人がGRUB 2の設定で「ハマる」ことのないよう、GRUB 2の概要や設定のポイントについて説明する。

GRUB 2は高機能なブートローダー

 GRUB 2は、BIOSブートとUEFIブートの両方をサポートする、高機能なブートローダーである。機能の多くが、動的にロードできるモジュールとして実装されており、柔軟性が高い、コアのイメージが小さくて済むのでロードが速いといった特徴を持つ。

 カーネルの提供者の署名で確認してから起動する「UEFI Secure Boot」にも対応しているほか、さまざまなファイルシステムから起動できる。GRUBと比べてLVM(Logical Volume Manager)やRAIDのサポートが強化されており、それらのファイルを直接読み書きできる。

 なお、GRUBとGRUB2では設定ファイルやコマンドに表1のような差異がある。

表1●GRUBとGRUB2の主な違い
  GRUB(RHEL 6) GRUB 2(RHEL 7)
設定ファイル /boot/grub/grub.conf *1
/boot/efi/EFI/redhat/grub.conf *1
/boot/grub2/grub.cfg *1 *2
/boot/efi/EFI/redhat/grub.cfg *1 *2
/etc/default/grub
/etc/grub.d/*
GRUBモジュール /boot/grub/*_stage1_5 /boot/grub2/i386-pc/*.mod *1
/boot/grub2/x86_64-efi/*.mod *1
ブートローダーのインストールコマンド grub-install grub2-install
設定ファイルの生成コマンド grub2-mkconfig
パスワードの生成コマンド grub-crypt grub2-mkpasswd-pbkdf2
デフォルトエントリーの指定コマンド grub2-set-defaul
*1 BIOSブートとUEFIブートの場合でファイルが異なる
*2 GRUB2のgrub.cfgファイルは直接編集不可