解决Deepin中Grub字体太小问题
0x00 背景
最近重装了一下Deepin v20系统,发现开机时Grub菜单字体变小了,看着很不舒服,就尝试着寻找了下解决方法。
Grub配置文件路径是:/etc/default/grub,所以主要就是修改这个文件。该文件的默认内容为:
1 | # Written by com.deepin.daemon.Grub2 |
修改这个文件后,使用update-grub命令更新Grub配置,然后重启电脑。
0x01 修改GRUB_GFXMODE配置
网上找到的比较多的解决方法是修改GRUB_GFXMODE配置,也就是修改Grub使用的分辨率:GRUB_GFXMODE=1024x768,从而让字变大。不过在我电脑上,只有1024x768这个分辨率能够生效,而且看起来字不仅偏大,背景图片也变模糊了。所以这种方法不算是特别好的解决方法。
0x02 增加GRUB_FONT配置
网上另一种解决方案是先通过grub2-mkfont命令生成较大一些的字体,然后修改GRUB_FONT配置,指向生成的字体文件路径。具体方法如下:
1 | $ sudo grub-mkfont --output=/boot/grub/fonts/DejaVuSansMono36.pf2 --size=36 /usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttf |
然后增加配置:GRUB_FONT=/boot/grub/fonts/DejaVuSansMono36.pf2。
不过这种方法也没有生效。后来发现是因为当GRUB_FONT与GRUB_THEME同时存在时,会优先使用GRUB_THEME中的配置。
0x03 修改主题文件
Deepin中默认使用的Grub主题文件路径是:/boot/grub/themes/deepin-fallback/theme.txt。该文件文件如下:
1 | #version:17 |
可以看到,主题里使用的是Unifont Regular 16字体,看名字可以知道字体大小是16,在4K分辨率下看起来会比较小。所以只要生成大号的字体替换这里的配置就可以了。
生成大号字体的命令是:
1 | $ sudo grub-mkfont --output=/boot/grub/themes/deepin-fallback/unifont-regular-36.pf2 --size=36 /usr/share/fonts/truetype/unifont/unifont.ttf |
然后将主题文件中的Unifont Regular 16都替换为Unifont Regular 36,并重启电脑。可以看到,字体的确变大了。可以根据实际情况动态修改字体的大小。
0x04 结论
此方法理论上不仅可以用于Deepin系统,其它Linux系统应该也可以适用。