開発運用

GRUBカスタマイズ完全ガイド

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設定ファイルの編集

ターミナルを開き、以下のコマンドで設定ファイルを編集します。

bash
sudo nano /etc/default/grub

以下は主要な設定項目です。

設定項目 説明
GRUB_DEFAULT デフォルトで起動するメニューエントリ 0(最初の項目)、saved
GRUB_TIMEOUT ブートメニュー表示時間(秒) 5(5秒間表示)
GRUB_CMDLINE_LINUX カーネルに渡すオプション quiet splash(静かな起動)
GRUB_GFXMODE GRUBメニューの解像度 1920x1080

例として、ブートメニューを3秒だけ表示し、デフォルトの起動項目を最後に選択したものに設定する場合は、次のように変更します。

ini
GRUB_DEFAULT=saved GRUB_TIMEOUT=3 GRUB_CMDLINE_LINUX="quiet splash" GRUB_GFXMODE=1920x1080

3.2 設定変更の反映

編集後、以下のコマンドでGRUBを更新します。

bash
sudo update-grub

4. GRUBの詳細カスタマイズ

4.1 ブートメニューの背景画像を変更

GRUBのメニュー画面にカスタム背景を設定できます。

  1. 好みの画像を/boot/grubディレクトリにコピー。
bash
sudo cp ~/Pictures/background.png /boot/grub/
  1. /etc/default/grubに以下を追加。
ini
GRUB_BACKGROUND="/boot/grub/background.png"
  1. 設定を反映。
bash
sudo update-grub

4.2 解像度とフォントの変更

GRUBメニューの見た目を整えるには、解像度とフォントサイズを調整すると効果的です。

  • 解像度設定:
    /etc/default/grubGRUB_GFXMODEを変更。
ini
GRUB_GFXMODE=1920x1080
  • フォントサイズ変更:
  1. GRUB用のフォントを生成。
bash
sudo grub-mkfont --output=/boot/grub/fonts/DejaVuSansMono.pf2 --size=20 /usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttf
  1. /etc/default/grubにフォント設定を追記。
ini
GRUB_FONT="/boot/grub/fonts/DejaVuSansMono.pf2"
  1. GRUBを更新。
bash
sudo update-grub

5. 高度な設定

5.1 カーネルパラメータの追加

特定のハードウェア問題の解決やパフォーマンス向上のため、カーネルにパラメータを渡すことができます。

例: CPUの省電力機能を無効にする場合。

ini
GRUB_CMDLINE_LINUX="intel_pstate=disable"

5.2 リカバリーモードの無効化

セキュリティ向上のため、リカバリーモードを非表示にすることが可能です。

ini
GRUB_DISABLE_RECOVERY=true

5.3 GRUBメニューのパスワード保護

GRUBメニューにパスワードを設定することで、無許可の起動を防止できます。

  1. パスワードをハッシュ化。
bash
grub-mkpasswd-pbkdf2
  1. 生成されたハッシュを/etc/grub.d/40_customに追加。
ini
set superusers="root" password_pbkdf2 root grub.pbkdf2.sha512.10000.xxxxx
  1. GRUBを更新。
bash
sudo update-grub

6. トラブルシューティング

6.1 GRUBメニューが表示されない場合

GRUB_TIMEOUT=0になっている可能性があります。3秒程度に設定し直します。

ini
GRUB_TIMEOUT=3

6.2 起動に失敗する場合

リカバリーモードで起動し、update-grubを実行。

bash
sudo update-grub

7. GRUBのバックアップと復元

設定を変更する前に、GRUB設定をバックアップしておくと安全です。

7.1 バックアップ

bash
sudo cp /etc/default/grub /etc/default/grub.bak

7.2 復元

bash
sudo cp /etc/default/grub.bak /etc/default/grub sudo update-grub

8. まとめ

GRUBをカスタマイズすることで、起動の快適性を向上させ、システム管理をより柔軟に行うことができます。適切な設定とバックアップを行いながら、自分好みの起動環境を構築してみてください。

Back to top button