GRUB2 設定のトラブルシューティングと検証
この最後のステップでは、GRUB2 設定に関する不可欠なトラブルシューティング手法を学び、変更内容を検証する方法を理解します。これらのスキルは、本番環境のシステムを再起動する前に GRUB2 の修正が正しく機能することを確認する必要があるシステム管理者にとって極めて重要です。
GRUB2 設定の構文チェック
組み込みの構文チェッカーを使用して、GRUB2 設定に構文エラーがないか確認します。
sudo grub2-script-check /boot/grub2/grub.cfg
エラーがない場合、このコマンドは何も出力せずに終了します。構文エラーがある場合は行番号とともに表示されるため、問題の特定と修正に役立ちます。
GRUB2 のディレクトリ構造の理解
GRUB2 の設定ディレクトリ構造を探索して、その仕組みを理解しましょう。このディレクトリへのアクセスには root 権限が必要です。
sudo ls -la /etc/grub.d/
ここには、GRUB2 メニューの各セクションを生成するスクリプトが表示されます。各スクリプトには、実行順序を決定する数字のプレフィックスが付いています。以下のようなスクリプトが含まれています。
00_header: 基本的な GRUB2 設定を行います。
00_tuned: Tuned 固有の設定です。
01_users: ユーザー設定です。
10_linux: Linux カーネルを検索して追加します。
20_linux_xen: Xen ハイパーバイザーのサポートです。
30_os-prober: 他のオペレーティングシステムを検索します。
40_custom: ユーザー定義のメニューエントリを記述します。
実際のスクリプトは、システムの構成やインストールされているパッケージによって異なる場合があります。
利用可能なブートエントリの確認
生成された設定ファイルにどのようなブートエントリが含まれているかを確認します。
sudo grep "menuentry" /boot/grub2/grub.cfg | head -10
このコマンドは、メニューエントリの参照や実際のメニューエントリを表示します。出力には、設定変数(menuentry_id_option など)と実際のブートメニューエントリの両方が含まれる場合があります。完全なメニューエントリ定義が含まれている行を探してください。
タイムアウトとデフォルト設定の再確認
タイムアウトとデフォルト設定が正しく構成されているか最終確認します。
sudo grep -E "set timeout|set default" /boot/grub2/grub.cfg
設定ファイル内に複数のタイムアウトやデフォルト設定が見つかることがありますが、これは正常です。GRUB2 は、シナリオに応じて異なるタイムアウト値を使用するためです。
- メインのタイムアウト(設定通り通常は 15 秒)
- 特殊な状況のための条件付きタイムアウト
- 異なるタイムアウトスタイル(メニュー表示、非表示など)
検証すべき重要な設定は以下の通りです。
set default="0" - 最初のエントリをデフォルトに設定
set timeout=15 - メインメニューのタイムアウトを 15 秒に設定
GRUB2 リカバリについて学ぶ
起動トラブルの解決には、GRUB2 リカバリの理解が不可欠です。緊急時には以下の操作が可能です。
- GRUB2 コマンドラインへのアクセス: GRUB2 メニューで
c を押すとコマンドラインモードに入ります。
- ブートエントリの編集: 起動前に
e を押すと、そのブートエントリを一時的に編集できます。
- レスキューモードの使用: GRUB2 が設定ファイルを見つけられない場合、レスキューモード(rescue mode)に移行します。
一般的なリカバリコマンドには以下があります。
ls: 利用可能なパーティションとファイルを表示します。
set root=(hd0,1): ルートパーティションを設定します。
linux /boot/vmlinuz root=/dev/sda1: カーネルをロードします。
boot: 起動プロセスを開始します。
最終的な設定確認
ソースとなる設定ファイルに基本設定が正しく保存されているか、最後に確認します。
sudo cat /etc/default/grub | grep -E "(TIMEOUT|DEFAULT)"
これにより、基本設定がソースファイルに正しく保存されていることが確認されます。
達成したこと:
- GRUB2 のタイムアウトとデフォルト起動設定を修正しました。
grub2-mkconfig を使用して設定変更を適用しました。
- GRUB2 設定の検証とトラブルシューティング方法を学びました。
- 重要なブートファイルのバックアップ手順を作成しました。
- GRUB2 のディレクトリ構造とリカバリの選択肢を理解しました。
- システム再起動前に設定の妥当性を確認するスキルを習得しました。
これで、GRUB2 設定は 15 秒のタイムアウトと最初のエントリをデフォルトとするように適切にカスタマイズされました。本番環境では、これらの変更は次回のシステム再起動時に有効になり、より使い勝手の良い起動環境が提供されます。