Fedora的文档对于grub启动菜单的美化涉及甚少,这里结合我的经验,简单介绍Fedora中如何美化grub菜单。
一个很好的起点是,看看官方的RPM仓库里面有哪些主题
dnf search grub | grep theme
笔者写这篇博客时,只有下面这两个grub2-breeze-theme.x86_64 : Breeze theme for GRUB<br /> grub2-starfield-theme.x86_64 : An example theme for GRUB.
好了,你可以一口气全装上。这里安装经典的starfield主题。(BTW:这个主题很老的,至少在Fedora 17时代就有了)
sudo dnf install grub2-starfield-theme
下面要修改/etc/default/grub文件,使得grub生成配置的时候可以加载主题。关于这个文件,主要进行两方面修改:
- Fedora默认的GRUB_TERMINAL_OUTPUT的值是”console”,要想加载丰富多彩的主题,请把这个值改成”gfxterm”。网上也有说直接将其注释掉的,不过我没有尝试;
- 设置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”部分。