Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
26.5. GRUB 2 設定ファイルのカスタマイズ
GRUB 2 スクリプトはユーザーのコンピューターを検索して、スクリプトが見つけたオペレーティングシステムに基づくブートメニューを構築します。最新のシステムブートオプションを反映させるために、カーネルが更新されるか新規カーネルが追加されると、ブートメニューは自動的に再構築されます。
しかし、特定のエントリーを含むメニューの構築や、エントリーの特定の順番をユーザーが希望する場合もあります。GRUB 2 では基本的なブートメニューのカスタマイズが可能で、画面に表示されるものをユーザーが制御できます。
GRUB 2 は、一連のスクリプトを使用してメニューを構築します。これらは /etc/grub.d/
ディレクトリーにあります。このスクリプトは /etc/grub.d/ ディレクトリーに格納されており、以下のファイルが含まれます。
-
00_header
:/etc/default/grub
ファイルから GRUB 2 設定を読み込みます。 -
01_users
:user.cfg
ファイルからスーパーユーザーのパスワードを読み取ります。Red Hat Enterprise Linux 7.0 および 7.1 では、インストール中にキックスタートファイルでブートパスワードが定義された場合にのみこのファイルが作成され、含まれるパスワードはプレーンテキストになります。 -
10_linux
: Red Hat Enterprise Linux のデフォルトのパーティションでカーネルを見つけます。 -
30_os-prober
。別のパーティションで見つかったオペレーティングシステム用にエントリーを構築します。 -
40_custom
: 追加のメニューエントリー作成に使用可能なテンプレートです。
/etc/grub.d/
ディレクトリーからのスクリプトはアルファベット順に読み取られるので、名前を変更して特定のメニューエントリーの起動順を変更できます。
ブート可能なカーネルのリストを非表示にするには、/etc/default/grub
で GRUB_TIMEOUT
を 0 に設定しないでください。このように設定すると、システムが常にデフォルトのメニューエントリーで直ちに起動し、デフォルトのカーネルが起動に失敗した場合に、古いカーネルを起動することができなくなります。
代わりに、システムの起動時に GRUB 2 が起動可能なカーネルの一覧を表示しないようにするには、以下のように /etc/default/grub
ファイルの GRUB_TIMEOUT_STYLE
オプションを設定します。
GRUB_TIMEOUT_STYLE=hidden
システムの起動時に一覧を表示する場合は、キーボードまたは他のシリアルコンソールを使用して BIOS 情報が表示されている間に英数字キーを押し続けると、GRUB 2 で GRUB 2 メニューが表示されます。
26.5.1. デフォルトのブートエントリーの変更
デフォルトでは、/etc/default/grub
ファイルの GRUB_DEFAULT
ディレクティブのキーは saved
という単語です。これにより、/boot/grub2/grubenv
にある GRUB 2 環境ファイルの saved_entry
ディレクティブで指定されたカーネルを読み込むように GRUB 2 が指示されます。grub2-set-default
コマンドを使用して別の GRUB 2 レコードをデフォルトにすることもできます (この結果、GRUB 2 環境ファイルが更新されます)。
デフォルトでは、saved_entry
値は、パッケージタイプ kernel の最新のインストール済みカーネルの名前に設定されます。これは UPDATEDEFAULT
ディレクティブと DEFAULTKERNEL
ディレクティブにより /etc/sysconfig/kernel
で定義されます。このファイルは以下のように root
ユーザーが表示できます。
~]# cat /etc/sysconfig/kernel # UPDATEDEFAULT specifies if new-kernel-pkg should make # new kernels the default UPDATEDEFAULT=yes # DEFAULTKERNEL specifies the default kernel package type DEFAULTKERNEL=kernel
DEFAULTKERNEL
ディレクティブはデフォルトで使用するパッケージタイプを指定します。DEFAULTKERNEL
がパッケージタイプ kernel に設定されている場合は、kernel-debug タイプのパッケージをインストールしても、デフォルトのカーネルは変更されません。
GRUB 2 は、 saveed_entry
ディレクティブのキーとして数値を使用して、オペレーティングシステムがロードされるデフォルトの順序を変更することをサポートしています。どのオペレーティングシステムを最初に読み込むかを指定するには、その数字を grub2-set-default
コマンドに渡します。以下に例を示します。
~]# grub2-set-default 2
一覧内でのメニューエントリーの場所は、ゼロで始まる数字で示されることに注意してください。したがって、上記の例では、3 番目のエントリーがロードされます。この値は、次回にインストールされるカーネルの名前で上書きされます。
システムが常に特定のメニューエントリーを使用するようにするには、/etc/default/grub
ファイルの GRUB_DEFAULT
ディレクティブにメニューエントリー名をキーとして使用します。利用可能なメニューエントリーを一覧表示するには、root
で以下のコマンドを実行します。
~]# awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg
ファイル名 /etc/grub2.cfg
は grub.cfg
ファイル (場所はアーキテクチャーに依存します) へのシンボリックリンクです。信頼性を確保するために、シンボリックリンクは本章の他の例では使用されません。ファイルに書き込む場合 (特にシステムを修復する場合) は、絶対パスを使用することが推奨されます。
/etc/default/grub
への変更は、以下のように grub.cfg
ファイルの再構築を必要とします。
BIOS ベースのマシンでは、
root
で以下のコマンド実行します。~]# grub2-mkconfig -o /boot/grub2/grub.cfg
UEFI ベースのマシンでは、
root
で以下のコマンド実行します。~]# grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg