GRUB(Grand Unified Bootloader)は、Linuxシステムの起動を管理する重要なコンポーネントです。GRUBをカスタマイズすることで、起動プロセスをより効率的にし、使い勝手を向上させることができます。本記事では、GRUBの基本設定から高度なカスタマイズ方法まで、詳細に解説します。
1. GRUBとは?
GRUBは、コンピュータの電源を入れた直後に動作するブートローダーであり、オペレーティングシステムを起動する役割を担います。Linuxディストリビューションの多くで標準のブートローダーとして採用されています。
1.1 GRUBの主な役割
- OSの選択: マルチブート環境で複数のOSから選択可能。
- カーネルオプションの設定: カーネルに渡すパラメータを設定。
- リカバリーモード: トラブル発生時にシステム修復が可能。
- パスワード保護: GRUBメニューへのアクセスを制限できる。
2. GRUBの構造
GRUBは主に次の3つのステージに分けられます。
- ステージ1: MBR(Master Boot Record)に配置され、ステージ1.5またはステージ2を読み込む役割を果たす。
- ステージ1.5: ファイルシステムを認識し、GRUBの設定ファイルを読み込む中間段階。
- ステージ2: 設定ファイルを基にブートメニューを生成し、カーネルを読み込む。
GRUBの設定ファイルは通常、/etc/default/grub
にあります。また、詳細なメニュー設定は/boot/grub/grub.cfg
に格納されていますが、直接編集は推奨されません。
3. GRUBの基本設定
GRUBの基本設定は、/etc/default/grub
ファイルを編集して行います。編集後はupdate-grub
コマンドで変更を反映します。
3.1 GRUB設定ファイルの編集
ターミナルを開き、以下のコマンドで設定ファイルを編集します。
bashsudo nano /etc/default/grub
以下は主要な設定項目です。
設定項目 | 説明 | 例 |
---|---|---|
GRUB_DEFAULT |
デフォルトで起動するメニューエントリ | 0 (最初の項目)、saved |
GRUB_TIMEOUT |
ブートメニュー表示時間(秒) | 5 (5秒間表示) |
GRUB_CMDLINE_LINUX |
カーネルに渡すオプション | quiet splash (静かな起動) |
GRUB_GFXMODE |
GRUBメニューの解像度 | 1920x1080 |
例として、ブートメニューを3秒だけ表示し、デフォルトの起動項目を最後に選択したものに設定する場合は、次のように変更します。
iniGRUB_DEFAULT=saved
GRUB_TIMEOUT=3
GRUB_CMDLINE_LINUX="quiet splash"
GRUB_GFXMODE=1920x1080
3.2 設定変更の反映
編集後、以下のコマンドでGRUBを更新します。
bashsudo update-grub
4. GRUBの詳細カスタマイズ
4.1 ブートメニューの背景画像を変更
GRUBのメニュー画面にカスタム背景を設定できます。
- 好みの画像を
/boot/grub
ディレクトリにコピー。
bashsudo cp ~/Pictures/background.png /boot/grub/
/etc/default/grub
に以下を追加。
iniGRUB_BACKGROUND="/boot/grub/background.png"
- 設定を反映。
bashsudo update-grub
4.2 解像度とフォントの変更
GRUBメニューの見た目を整えるには、解像度とフォントサイズを調整すると効果的です。
- 解像度設定:
/etc/default/grub
のGRUB_GFXMODE
を変更。
iniGRUB_GFXMODE=1920x1080
- フォントサイズ変更:
- GRUB用のフォントを生成。
bashsudo grub-mkfont --output=/boot/grub/fonts/DejaVuSansMono.pf2 --size=20 /usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttf
/etc/default/grub
にフォント設定を追記。
iniGRUB_FONT="/boot/grub/fonts/DejaVuSansMono.pf2"
- GRUBを更新。
bashsudo update-grub
5. 高度な設定
5.1 カーネルパラメータの追加
特定のハードウェア問題の解決やパフォーマンス向上のため、カーネルにパラメータを渡すことができます。
例: CPUの省電力機能を無効にする場合。
iniGRUB_CMDLINE_LINUX="intel_pstate=disable"
5.2 リカバリーモードの無効化
セキュリティ向上のため、リカバリーモードを非表示にすることが可能です。
iniGRUB_DISABLE_RECOVERY=true
5.3 GRUBメニューのパスワード保護
GRUBメニューにパスワードを設定することで、無許可の起動を防止できます。
- パスワードをハッシュ化。
bashgrub-mkpasswd-pbkdf2
- 生成されたハッシュを
/etc/grub.d/40_custom
に追加。
iniset superusers="root"
password_pbkdf2 root grub.pbkdf2.sha512.10000.xxxxx
- GRUBを更新。
bashsudo update-grub
6. トラブルシューティング
6.1 GRUBメニューが表示されない場合
GRUB_TIMEOUT=0
になっている可能性があります。3秒程度に設定し直します。
iniGRUB_TIMEOUT=3
6.2 起動に失敗する場合
リカバリーモードで起動し、update-grub
を実行。
bashsudo update-grub
7. GRUBのバックアップと復元
設定を変更する前に、GRUB設定をバックアップしておくと安全です。
7.1 バックアップ
bashsudo cp /etc/default/grub /etc/default/grub.bak
7.2 復元
bashsudo cp /etc/default/grub.bak /etc/default/grub
sudo update-grub
8. まとめ
GRUBをカスタマイズすることで、起動の快適性を向上させ、システム管理をより柔軟に行うことができます。適切な設定とバックアップを行いながら、自分好みの起動環境を構築してみてください。