ブートローダを grub2 に入れ替える

フォーラムネタです。通常 Ubuntu で使われているブートローダgrub ですが、より高機能な grub2 に入れ替えてみました。とりあえずの目的は高解像度と色数の多い背景絵です。以下 Hardy のテスト環境で。
まず grub2 のインストール。

$ sudo apt-get install grub2

デフォルトでは既存の grub を上書きはせず、grub から grub2 をチェインロードする設定になります。grub-install /dev/sda などを実行することで、MBR を上書きできます。
設定ファイルは /boot/grub/grub.cfg に変更になりました。またパーティション番号のナンバリングが 1 からに変更されました。/dev/sda1 等のパーティション番号と同じになっているので、一台目の HDD の最初のパーティションは (hd0,1) となります。
まず表示したい解像度に合わせた背景画像を用意します。JPEG 画像も使えるらしいのですが、今回は TGA フォーマットの画像を使うことにしました。Gimp で画像を作成して /boot/grub に保存します。*1
そして設定ファイルを編集します。今までのように直接設定ファイルを書き換えるのではなく、テンプレートファイルを書き換えてから update-grub2 コマンドで grub.cfg を自動生成する仕組みになっているようです。
まずデフォルトで読み込む項目とタイムアウト値を設定します。/etc/default/grub を編集。

GRUB_TIMEOUT=60
# 追記 ディストリ名を Ubuntu に変更します
GRUB_DISTRIBUTOR=Ubuntu
# 追記 カーネルに渡すオプションを指定します。日本語を指定しないと gdm がおかしくなるので必須
GRUB_CMDLINE_LINUX="quiet splash locale=ja_JP"

次に画面の解像度を指定します。今回はデフォルトでインストールされている Debian のテーマファイルをいじることにします。/etc/grub.d/00_header を編集。

set gfxmode=1024x768

背景画像と文字色を指定します。/etc/grub.d/05_debian_theme の該当個所を編集。

for i in /boot/grub/ubuntu-tan.{png,tga} ; do # <- 自分が使いたい画像のファイル名

設定のスクリプトを見るとわかりますが、背景画像が有効になった場合は menu_color_normal ではなく color_normal が有効になります。文字色を変えたい場合は変更箇所に気をつけてください。
編集が終わったら update-grub2 を sudo で実行してください。

Ubuntu-tan を Grub の背景にしてみました。ワイド画面なのでちょっと横に伸びてますが。
Grub2 の設定は Debian の解説ページが役に立ちます。

*1:別にどこでもいいです