Screens with a high DPI are nice, but not all programs/environments have caught up on recognizing them. This has an annoying consequence that some things just appear tiny on your screen. GRUB is one of those programs with this issue. Luckily, since it is a text interface, it can be easily “fixed” by increasing the font.

To do this, we will first need to generate a font at a certain size in a format that GRUB can handle. You can pick any font of your system for this, I will be using Deja Vu Sans Mono. Monospace fonts are most likely the way to go. Open a terminal and enter the following.

sudo grub-mkfont --output=/boot/grub/fonts/DejaVuSansMono24.pf2 \
  --size=24 /usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttf

What this does may be obvious to most (and if so, you can skip this paragraph), but I will go over the details just to be sure. sudo is required since you will need root privileges to write the newly generated font to the output folder. grub-mkfont is the program that generates the GRUB compatible font for you. --output=/boot/... tells it where to save the font. I would advise to keep the folder /boot/grub/fonts/ as it is, simply because it is the most logical place to put this. The name you give the new font is completely up to you, I decided to keep it descriptive by combining the original font name and the size that I use. --size=24 defines the size you want to use, 24 worked nicely for my screen. The final parameter is the location of the original font file. Note that running the command spewed out some warnings in my terminal, but the font seemed to still be created without problems.

With that done, open /etc/default/grub in your favourite text editor. You will once again need root privileges to edit. Add a GRUB_FONT line with the location of your generated font (and maybe some comment explaining what you did) like so:

# More readable font on high dpi screen, generated with
# sudo grub-mkfont --output=/boot/grub/fonts/DejaVuSansMono24.pf2 \
#    --size=24 /usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttf
GRUB_FONT=/boot/grub/fonts/DejaVuSansMono24.pf2

Save the file and finally run sudo update-grub to propagate your change to all the files that need it. You’re all done, you can reboot to give it a look.

Information derived from: