2008年7月2日水曜日

GRUBのsplashimage(背景画像)

大学でGRUBを弄る機会があって、その時に思ったこと。

「Ubuntuだけgrubの背景画像が無い!」

その時は、授業内で自作してみたマシンに各自好きなOSぶち込んでいいよー、という授業だったのです。
CentOSやFedoraでは、自己主張しまくりなsplashimage(背景画像)付きのGRUBがインストールされたのですが。Ubuntuはただの白黒の画面。
普段自宅ではUbuntu使っていて、気にせず白黒画面のままにしていたのですが、ユーザーフレンドリーを目指すUbuntuなら、見た目に楽しいように画像くらい付けやがれ!と思いまして、ちょっとやってみようかと。

調べてみると、splashimageに設定できる画像は結構制限があるようです。
・gzipで圧縮されたxpmまたはpng
・640x480 px
・14色

14色ってハンパだなー、と思ったのですが、どうやらgrubが動作している16色モードで背景色と前景色(文字色)を除いて14色、ということらしいです。

とりあえず、画像を用意。Ubuntu 8.04デフォルト壁紙の頑丈なサギ(Hardy Heron)画像を上記の通りにしてみます。


Bloggerがxpmを受け付けてくれなかったので、jpgを表示してますが、実際にはxpmを使いました。
それをgzipで固めて、ubuntu-hardy.xpm.gzを用意。grubのディレクトリに写します。
$ sudo cp ubuntu-hardy.xpm.gz /boot/grub/

そして、grubの設定ファイルである/boot/grub/menu.lstにsplashimageの設定を書き加えます。
ここで、注意するのが書き加える位置。ファイル後半部の、ブートローダが起動させる各OSのリストになってる部分より前に書き加えなきゃいけないそうです。
とりあえず、defaultやtimeoutが書いてあるあたりにすれば間違いはないかと。
#Splash Image
background=000000
foreground=ffffff
splashimage=(hd0,1)/grub/ubuntu-hardy.xpm.gz

こんな感じで書き加えます。backgroundとforegroundは必ずしも書かなくて大丈夫です。書かない場合はデフォルトの白黒になります。
splashimageでは画像ファイルを
HDDとボリュームを含めて場所を指定するのですが、これはマシンごとににまちまち。
私は/bootディレクトリのみ個別のパーティションに切り分けていて、それが1番めのHDDの2番めのパーティションに当たるので、(hd0,1)と指定して/bootから先のファイルパスを書いてます。

これで、grubが画像付きになった筈!ということで再起動...
って、画像が化けまくり orz

色々ググってみると、凡ミスだと気づきました。
画像を編集する時に、画像をRGBモードのままGIMPのポスタリゼーション機能で14色に減色してましたが、これじゃあ画像のカラーマップは14色になってません。

ということで、改めて画像を作り直して再起動。
ちゃんと頑丈なサギが表示されましたッ!

0 件のコメント: