I recently made an LFS and made some changes in GRUB. I added the update-grub command. I'm able to set background color and highlight color. But when I add a custom theme-
update-grub gives-

Generating grub configuration file ...
Found theme: /boot/grub/theme/dark_squares/theme.txt
Found linux image: /boot/vmlinuz
Found initrd image: /boot/initrd.img-no-kmods

Looks good. Doesn't it?

However, when I reboot, some error flashes by too fast, but it boots normally. However, I managed to ( don't ask how) read the errors-

error: file /boot/grub/fonts/unicode.pf2 not found.
error: no suitable video mode found

this is my /etc/default/grub-

# If you change this file, run grub-mkconfig -o /boot/grub/grub.cfg
# afterwards to update /boot/grub/grub.cfg.
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Papiya`
# Uncomment to disable graphical terminal (grub-pc only)
# Select the terminal output device. You may select multiple devices                 here,
# separated by spaces.
# Valid terminal output names depend on the platform, but may include ‘console’
# (PC BIOS and EFI consoles), ‘serial’ (serial terminal), ‘gfxterm’     (graphics-mode
# output), ‘ofconsole’ (Open Firmware console), or ‘vga_text’ (VGA text output,
# mainly useful with Coreboot).
# The default is to use the platform's native terminal output. 
# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
# If graphical video support is required, either because the ‘gfxterm’ graphical
# terminal is in use or because ‘GRUB_GFXPAYLOAD_LINUX’ is set, then grub-mkconfig
# will normally load all available GRUB video drivers and use the one most
# appropriate for your hardware. If you need to override this for some reason,
# then you can set this option. After grub-install has been run, the available
# video drivers are listed in /boot/grub/video.lst. 
# Uncomment to select a font to use
# Set a background image for use with the ‘gfxterm’ graphical terminal. The value
# of this option must be a file readable by GRUB at boot time, and it must end
# with .png, .tga, .jpg, or .jpeg. The image will be scaled if necessary to fit
# the screen.
# Set to ‘text’ to force the Linux kernel to boot in normal text mode, ‘keep’ to
# preserve the graphics mode set using ‘GRUB_GFXMODE’, ‘widthxheight’[‘xdepth’] to
# set a particular graphics mode, or a sequence of these separated by commas or
# semicolons to try several modes in sequence. See gfxpayload.
# Depending on your kernel, your distribution, your graphics card, and the phase of
# the moon, note that using this option may cause GNU/Linux to suffer from various 
# display problems, particularly during the early part of the boot sequence. If you
# have problems, set this option to ‘text’ and GRUB will tell Linux to boot in
# normal text mode. 

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
# Uncomment to disable generation of recovery mode menu entrys
# Uncomment to get a beep at grub start
GRUB_INIT_TUNE="480 440 1"

2 Answers 2


In my case I was trying to boot using GRUB command line (without grub.cfg file), so I had to load the video module to get my TinyCore to boot:

insmod all_video

Without this, I was getting the same error as OP.

However, as Aniket Bhattacharyea answered, I also did have to manually copy unicode.pf2 file to /boot/grub/fonts to get terminal_output gfxterm to output valid characters.


Solved this by copying unicode.pf2 file to /boot/grub/fonts.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.