/grub2/fonts/unicode.pf2 not found error before grub menu appears


When booting Fedora Silverblue 34 I see an error flash on the screen before being replaced with the grub menu. I managed to inspect what it says by taking a video. It says:

error: ../../grub-core/fs/fshelp.c:257:file `/grub2/fonts/unicode.pf2' not found.

It doesn’t prevent the OS from booting, but wondering if anyone knows what might be causing this.

The only grub related customization I’ve made is change GRUB_TERMINAL_OUTPUT from console to gfxterm, as the former rendered extremely slowly and was laggy when navigating the grub menu.

Grub config

> cat /etc/default/grub
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_CMDLINE_LINUX="rd.luks.uuid=luks-0c755fd5-99d6-4578-bb46-328eb72fd038 rd.lvm.lv=vg0/root rhgb quiet"

rpm-ostree status

> rpm-ostree status
State: idle
● fedora:fedora/34/x86_64/silverblue
                   Version: 34.20210923.0 (2021-09-23T19:02:00Z)
                BaseCommit: 4547905b37f46a790a810248c13ce718e4c42cdbf6f1bff38a311d1503543dfa
              GPGSignature: Valid signature by 8C5BA6990BDB26E19F2A1A801161AE6945719A39
           LayeredPackages: virt-manager rpmfusion-nonfree-release snapper virt-viewer bcache-tools google-chrome-stable fish ffmpeg
                            fedora-workstation-repositories acpica-tools rpmfusion-free-release

I’ve confirmed that reverting GRUB_TERMINAL_OUTPUT back to console makes the error go away - but that makes the grub menu extremely slow and laggy again.

I’ll go ahead and log a bug for this.

Issue reported here: [BUG] Grub error `/grub2/fonts/unicode.pf2' not found when using gfxterm console · Issue #204 · fedora-silverblue/issue-tracker · GitHub

I think you can specify GRUB_FONT="/path/to/font.pf2" in /etc/default/grub.

Edit: It seems it’s already been filed as a bug here (1739762 – Error message about missing file(unicode.pf2) while boot via EFI).
Unfortunately, it seems it is still an issue in F35 (at least in my installation of Kinoite).

Oh that’s interesting!

I had assumed that this was just a silverblue/rpm-ostree issue due to they way the boot process is a little different from regular fedora workstation (in order to support booting into earlier images and so on).

I didn’t think to check for normal workstation bug reports.

It could be that a temporary solution is just to manually copy/paste the correct font file. Could you give this a try?

Yep, copying /usr/share/grub/unicode.pf2 into /boot/grub2/fonts/ fixed the error.

But as you say, this solution is only temporary.