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のような差異がある。
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 |