ブートローダー ( GRUB2 ) の役割と設定方法
GRUB2 は /boot/grub2/grub.cfg
を読み込み、起動メニューを表示する。
新しいバージョンのカーネルを RPM パッケージから導入すると、GRUB2 の設定ファイルは自動的に更新される。この際、/boot 以下にあるカーネルのファイルを検出して、対応するエントリーを起動メニューに追加。
どのようなエントリーが設定されているかは、以下のコマンドで確認できる。
$ sudo grep "^menuentry" /boot/grub2/grub.cfg | cut -d "'" -f2
Red Hat Enterprise Linux Server (3.10.0-514.21.2.el7.x86_64) 7.3 (Maipo)
Red Hat Enterprise Linux Server (0-rescue-2c0164cc85e344b6837514530c15f0d7) 7.3 (Maipo)
カーネルの起動オプションを変更するには /etc/default/grub
を編集する。
$ sudo emacs /etc/default/grub
GRUB_TIMEOUT=1
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="console=ttyS0,115200n8 console=tty0 net.ifnames=0 crashkernel=auto"
GRUB_DISABLE_RECOVERY="true"
それぞれの意味は以下の通り。
設定項目 | 説明 |
---|---|
GRUB_TIMEOUT | メニュー画面の待ち時間指定 |
GRUB_DEFAULT | デフォルトエントリーの指定 |
GRUB_DISABLE_SUBMENU | false にするとカーネルごとにメニューをグループ化する |
GRUB_TERMINAL_OUTPUT | GRUB2 の画面出力先の指定 |
GRUB_CMDLINE_LINUX | デフォルトのカーネルオプションを指定 |
GRUB_DISABLE_RECOVERY | false にするとレスキューモードの起動メニューを追加 |
変更の反映は以下のコマンドで行う。
$ grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-514.21.2.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-514.21.2.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-2c0164cc85e344b6837514530c15f0d7
Found initrd image: /boot/initramfs-0-rescue-2c0164cc85e344b6837514530c15f0d7.img
done
現在デフォルトに設定されているエントリーは以下のコマンドで確認。
$ sudo grub2-editenv list
saved_entry=Red Hat Enterprise Linux Server (3.10.0-514.21.2.el7.x86_64) 7.3 (Maipo)
GRUB2 本体の保存場所はディスクのパーティション構成によって異なる。 通常のディスクパーティション構成: MBR の直後の空き領域 GPT 構成: BIOS boot partion という特別なパーティションを用意し、そこに保存される
初期 RAM ディスクの役割
カーネルが起動すると、起動ディスクにアクセスし、各種ファイルシステムをマウントする。その準備として、起動ディスクにアクセスするためのデバイスドライバーが必要になる。
Linux のカーネルモジュール一式は、/lib/modules/
初期 RAM ディスク: デバイスドライバーをはじめとする、カーネルが起動直後に使用するファイル群をまとめたアーカイブファイル。
初期 RAM ディスクに含まれるファイルの一覧は lsinitrd コマンドで表示できる。
$ sudo lsinitrd /boot/initramfs-3.10.0-514.21.2.el7.x86_64.img
Image: /boot/initramfs-3.10.0-514.21.2.el7.x86_64.img: 36M
========================================================================
Early CPIO image
========================================================================
drwxr-xr-x 3 root root 0 Jun 13 15:32 .
-rw-r--r-- 1 root root 2 Jun 13 15:32 early_cpio
drwxr-xr-x 3 root root 0 Jun 13 15:32 kernel
drwxr-xr-x 3 root root 0 Jun 13 15:32 kernel/x86
drwxr-xr-x 2 root root 0 Jun 13 15:32 kernel/x86/microcode
-rw-r--r-- 1 root root 24070 Jun 13 15:32 kernel/x86/microcode/AuthenticAMD.bin
-rw-r--r-- 1 root root 947200 Jun 13 15:32 kernel/x86/microcode/GenuineIntel.bin
========================================================================
Version: dracut-033-463.el7_3.1
...