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.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .