ブートローダのインストール

May 09, 2018

GRUB のインストール

GRUB は多機能なブートローダであり、現在多くのディストリビューションで標準的に使用されている。
GRUB の特徴は以下。

  • 多数のファイルシステムを認識可能
  • シェル機能を搭載し、コマンドによる高度な管理が可能

ブートローダとして GRUB をインストールするには grub-install コマンドを用いる。
次の例では /dev/sda の MBR 領域に GRUB をインストールしている。

$ sudo grub-install /dev/sda  

また、GRUB のバージョン確認は以下のコマンドで。

$ grub-install -v  
grub-install (GNU GRUB 0.97)  

GRUB Legacy の設定

GRUB Legacy の設定ファイルは /boot/grub/menu.list となっている。設定ファイルで用いられる主なパラメータは以下。

パラメータ 役割
timeout メニューを表示している時間 (秒)
default デフォルトで起動するエントリの番号
title メニューに表示されるエントリ名
root ルートデバイスの指定
kernel 起動するカーネルイメージファイルと起動オプションの設定
makeactive ルートパーティションをアクティブ化
chainloader 指定されたセクタの読み込みと実行
hiddenmenu 起動時に選択メニューを表示しない

GRUB の設定ファイルは、ディストリビューションによって /boot/grub/grub.conf になっている場合もある。

/boot/grub/grub.conf

$ cat /boot/grub/grub.conf   
# created by imagebuilder  
default=0  
fallback=1  
timeout=0  
hiddenmenu  
  
title Amazon Linux 2018.03 (4.14.26-46.32.amzn1.x86_64)  
root (hd0,0)  
kernel /boot/vmlinuz-4.14.26-46.32.amzn1.x86_64 root=LABEL=/ console=tty1 console=ttyS0 selinux=0 nvme_core.io_timeout=4294967295  
initrd /boot/initramfs-4.14.26-46.32.amzn1.x86_64.img  

/boot/grub/menu.lst

$ cat /boot/grub/menu.lst   
default=0  
timeout=0  
  
  
title Red Hat Enterprise Linux 7 (3.10.0-862.el7.x86_64)  
	root (hd0)  
	kernel /boot/vmlinuz-3.10.0-862.el7.x86_64 ro root=UUID=50a9826b-3a50-44d0-ad12-28f2056e9927 console=hvc0 LANG=en_US.UTF-8  
	initrd /boot/initramfs-3.10.0-862.el7.x86_64.img  

GRUB 2 の設定

GRUB 2 の設定ファイルは /boot/grub(2)/grub.cfg ではあるが、GRUB Legacy とは異なり、直接ファイルを編集することはしない。/etc/default/grub で設定を行い、grub-mkconfig コマンドにより設定を読み込ませ、/boot/grub2/grub.cfg を生成する。

/etc/default/grub/ の例

$ cat /etc/default/grub   
GRUB_CMDLINE_LINUX_DEFAULT="console=tty0 console=ttyS0,115200n8 net.ifnames=0 biosdevname=0 nvme_core.io_timeout=4294967295"  

設定ファイルで用いられる主なパラメータは以下。

パラメータ 説明
GRUB_TIMEOUT 起動メニューがタイムアウトするまでの秒数
GRUB_DEFAULT 起動メニューがタイムアウトしたときにデフォルト OS として選択されるエントリ
GRUBCMDLINELINUX カーネルに渡される起動オプション

設定後、grub-mkconfig もしくは grub2-mkconfig コマンドで設定ファイルを生成する。

$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg  
Generating grub configuration file ...  
Found linux image: /boot/vmlinuz-4.14.26-54.32.amzn2.x86_64  
Found initrd image: /boot/initramfs-4.14.26-54.32.amzn2.x86_64.img  
done  

ブートオプションの指定

ブートローダ起動時に、システムの動作を指定するためのオプションが指定可能。GRUB でブートオプションを指定するには、起動時の画面で E キーを入力。以下のような画面が表示される。

grub append> ro root=/dev/VolGroup00/LogVo100 rhgb quiet  

ここでキーボードよりオプションを入力することができる。
代表的なオプションは以下。

パラメータ 説明
root=デバイス ルートパーティションとしてマウントするデバイス
nousb USB デバイスを使用しない
single シングルユーザーモードで起動
1 ~ 5 ランレベルの指定

例えばシングルユーザーモードで起動したい場合は以下のようにする。

grub append> ro root=/dev/VolGroup00/LogVo100 rhgb quiet single  

 © 2023, Dealing with Ambiguity