Fedora安装grub主题手记

Fedora的文档对于grub启动菜单的美化涉及甚少,这里结合我的经验,简单介绍Fedora中如何美化grub菜单。

一个很好的起点是,看看官方的RPM仓库里面有哪些主题

dnf search grub | grep theme

笔者写这篇博客时,只有下面这两个
grub2-breeze-theme.x86_64 : Breeze theme for GRUB
grub2-starfield-theme.x86_64 : An example theme for GRUB.

好了,你可以一口气全装上。这里安装经典的starfield主题。(BTW:这个主题很老的,至少在Fedora 17时代就有了)

sudo dnf install grub2-starfield-theme

下面要修改/etc/default/grub文件,使得grub生成配置的时候可以加载主题。关于这个文件,主要进行两方面修改:

  1. Fedora默认的GRUB_TERMINAL_OUTPUT的值是”console”,要想加载丰富多彩的主题,请把这个值改成”gfxterm”。网上也有说直接将其注释掉的,不过我没有尝试;
  2. 设置GRUB_THEME,指定主题配置文件的位置。对于grub2-starfield-theme,这个配置文件在/boot/grub2/themes/system/theme.txt。换句话说,你需要新增这样一行:GRUB_THEME="/boot/grub2/themes/system/theme.txt"

然后要做的就是重新生成grub的配置文件

sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg

(如果你的系统还在用BIOS,那么你应该执行sudo grub2-mkconfig -o /boot/grub2/grub2.cfg)

一般来说到这里就可以重启你的机器欣赏你新安装的主题了。不过对于starfield主题,笔者发现它的主题文件中有一个符号链接连错了位置(Broken link)。
具体地说,笔者发现在/boot/grub2/themes/system中unicode.pf2指向../../font/unicode.pf2,但在笔者的Fedora 26上unicode.pf这个文件真实位置是/boot/grub2/unicode.pf2。于是乎需要进行一点修正。

su
cd /boot/grub2/themes/system
rm unicode.pf2
ln -s ../../unicode.pf2 unicode.pf2

关于配置主题设置文件theme.txt的更多细节,可以参考/usr/share/doc/grub2-tools/grub.html中的“Theme file format”部分。

发表评论

电子邮件地址不会被公开。