2023-06-05

【LMDE】GRUB2 メニューを美麗に整える

大層なタイトルですが、自分用の GRUB2 メニューのカスタマイズ手順の記録です。Linux Mint でも LMDE でも同じ手順です。

Linux Mint/LMDE の標準の GRUB2 メニューは grub2-theme-mint というパッケージで構成されています。ワタシの PC のモニターは Full HD なので解像度は 1920x1080 です。パッケージを作る時はどんな解像度でも表示されることが望ましいので、Full HD なモニターではキレイに表示されないんだと思います。

1. 追加パッケージのインストール

grub2-theme-mint-2k をインストールします。 これでだいぶ良くなりますが、ちょっと個人的にはフォントサイズが大きすぎる感じです。

生成された /boot/grub/grub.cfg をのぞいてみると、gfxmode=auto が指定されているようです。小さいサイズのフォントを用意するか、gfxmode で高い解像度を指定するのが良さそうです。

今回は gfxmode で高い解像度を指定する方法を試してみます。

2. 対応している解像度の確認

PC の起動時、GRUB メニューが表示されている間に「c」キーを押して GRUB コマンドを受け付けるモードに移行します。そして、videoinfo というコマンドを入力すると、対応可能な解像度の一覧が表示されます。

今回は 1920x1080x32 を指定してみたかったので、この解像度がリストされるかを確認したところ、期待通りにリストされていました。

3. GRUB メニューへの設定

grub2-theme-mint-2k をインストールすると、/etc/default/grub.d/63_mint-theme-2k.cfg というファイルが追加されます。このファイルを編集しちゃいます。

$ cat 63_mint-theme-2k.cfg 
#! /bin/sh
set -e

GRUB_FONT="/boot/grub/fonts/UbuntuMono32.pf2"
GRUB_THEME="/boot/grub/themes/linuxmint-2k/theme.txt"
GRUB_GFXMODE=1920x1080x32,1024x768x24,auto

gfxmode は解像度設定がうまくいかないことを想定して、複数セットを指定すべし、ということらしいです。左側から順に試してうまく動いたモードが適用されるそうです。

4. GRUB メニューへの反映

GRUB の設定を変更した際はおまじないを唱える必要があります。

$ sudo update-grub

これで再生成しておかないと「変更したのにどうして反映されないんだろう?」としばらく悩んでしまうことになりますので忘れずに。

$ cat /boot/grub/grub.cfg

if loadfont /boot/grub/fonts/UbuntuMono32.pf2 ; then
  set gfxmode=1920x1080x32,1024x768x24,auto
  load_video
  insmod gfxterm
  set locale_dir=$prefix/locale
  set lang=ja_JP
  insmod gettext
fi

再生生後の grub.cfg をのぞいてみると、gfxmode の指定が反映されていることが確認できました。

5. いざ PC を再起動

でで〜ん。高解像度になったのでエレガントです。

UbuntuMono 32ポイント

でもなんかまだフォントサイズが大きい気がします。(個人的に)

 

6. フォントサイズを変えてみる

フォントサイズは定義体への指定値を変えるわけではなく、GRUB メニュー用にフォントセットを作成する必要があります。

sudo grub-mkfont --verbose --size=24 --output=/boot/grub/fonts/UbuntuMono24.pf2 /usr/share/fonts/truetype/ubuntu/UbuntuMono-R.ttf

これは UbuntuMono の 24ポイントのフォントセットを生成しています。

$ cat /etc/default/grub.d/63_mint-theme-2k.cfg 
#! /bin/sh
set -e

GRUB_FONT="/boot/grub/fonts/UbuntuMono24.pf2"
GRUB_THEME="/boot/grub/themes/linuxmint-2k/theme.txt"
GRUB_GFXMODE=1920x1080x32,1024x768x24,auto

63_mint-theme-2k.cfg の中に使用するフォントセットのファイル名を指定する部分があるので、その部分を書き換えます。
(GRUB_FONT="〜/UbuntuMono24.pf2" と指定しました)

そしてまたおまじないを唱えます。

$ sudo update-grub

PC を再起動するとこんな感じです。

UbuntuMono 24ポイント

 

どうでしょう?もう 32ポイントでも 24ポイントでもどっちでもいいや状態になってきました。

24ポイントの場合は grub-mkfont の入力を UbuntuMono-B.ttf に変えてもいいかもしれません。(やりすぎ注意)