[SOLVED] GRUB text size problem

I’m currently dual-booting a Framework laptop between Ubuntu 22.04 and Windows 10 using grub. All is well, except that I have to strain my old eyes to see the tiny grub menu when it appears in the top left hand corner of the screen.

I’m sure there must be a way to persuade grub to use a more appropriate resolution. But I haven’t yet found it. This method doesn’t appear to change anything.

I’ve tried in vain GRUB_GFXMODE=1600x1200x32,auto, which is one of the resolutions the grub console’s videoinfo offers. Any help would be very welcome.


Chris

The links below might be a clue.

Thanks for the thought, @junaruga. But I’m puzzled. The OP in the first link is talking about reducing the size of his font. He seems to be looking at a GUI grub. Mine is a rudimentary terminal grub and the fonts could hardly be smaller. I believe what I’m looking for here is not font substitution but some way of telling grub the resolution of the screen it’s playing to.

Oh, but wait… That links to this, which is definitely helpful.

Clearly the parameter I was attempting to use only applies to a GUI grub and I need to set GRUB_TERMINAL_OUTPUT to gfxterm. I’ll do that and report back.

MOMENTS LATER

Nope. Setting GRUB_TERMINAL_OUTPUT to gfxterm and then running update-grub doesn’t put grub into a GUI. In fact, a comment in the grub configuration file seems to suggest that grub is by default in a GUI:

# Uncomment to disable graphical terminal (grub-pc only) #GRUB_TERMINAL=console

It would be very helpful to hear from anybody who knows what’s going on here.


Chris

OK. Some days you achieve nothing. But today I’ve got to the bottom of this grub stuff. I think.

I was right to set GRUB_TERMINAL=gfxterm. This does invite grub to come up in a GUI.

But I was wrong, I believe, to set GRUB_GFXMODE=1600X1024. This was a 3:2 resolution I pulled out of the options offered in Settings/Screen Display/Resolution. It’s my understanding now that with only VESA resolutions to play with at this early boot stage before the graphics drivers have been loaded, this is an illegal resolution. update-grub doesn’t complain about this, but as a result, apparently silently declines to go into GUI mode.

I’ve now changed GRUB_GFXMODE to a more modest 800x600 and everything is now copacetic. Thanks for the clues and thanks to @Fraoch for moving this discussion to a more appropriate location.

PS: Acceptable boot screen resolutions are listed in the grub console (hit the C key when grub appears to get there) in response to the videoinfo command.

PPS. Oh, hello @anon81945988. I didn’t see your post until after I’d discovered the solution. Yes, 800x600 works nicely, and now I know why. I may add a background picture later. But for now my eyes are grateful simply for the legible text.


Chris

2 Likes

Just to wind this up, it’s clear to me now that there’s no need to declare GRUB_TERMINAL=gfxterm. I should have understood the hint in the grub configuration comments. By default, grub is operating in a graphics terminal.

In fact, this is the original cause of the problem: it finds itself in a high res graphics terminal and accordingly uses a tiny font. I had forgotten my early days of using a real text console, when a font that small would have been impossible.


Chris

1 Like

How do you change it to 800x600? I don’t have any possible commands listed for GRUB_GFXMODE when I hit C during Grub boot.

He linked to this gnu.org/software/grub/manual/grub/grub.html#Configuration which shows how to edit the grub config file.

But personally, I recommend using Grub-customizer to edit the options. Go to Appearance Settings tab > Custom Resolution. Grub-customizer also lets you easily load a theme, if you so wish. Customize Grub to Get a Better Experience With Linux

Ok, for people in the future.
In terminal in Ubuntu

$ sudo nano /etc/default/grub

find
#GRUB_GFXMODE=640x480

uncomment it, and change to 800x600

ctrl X to save and exit

then

sudo update grub

This is not done from grub but from the terminal in Ubuntu

1 Like

Thanks for outlining the steps @Hunter_Stabler :slight_smile:

Sorry its sudo update-grub

Hmm, this doesn’t work for me on fedora 40. I’ve done the edit of the grub file in your previous post, but because this update step doesn’t work it doesn’t seem to have an effect.

Fedora doesn’t have an update-grub script. Just use sudo grub-mkconfig -o /boot/efi/EFI/fedora/grub.cfg.

alanp@fedora:~$ sudo grub-mkconfig -o /boot/efi/EFI/fedora/grub.cfg.
[sudo] password for alanp:
sudo: grub-mkconfig: command not found
alanp@fedora:~$

I did find some information on the web (can’t remember the exact command) but That didn’t update it either.

Did this instead …
alanp@fedora:~$ sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg.
[sudo] password for alanp:
Generating grub configuration file …
Found Windows Boot Manager on /dev/nvme0n1p1@/efi/Microsoft/Boot/bootmgfw.efi
Adding boot menu entry for UEFI Firmware Settings …
done
alanp@fedora:~$

which IIRC is what I did before but it didn’t change anything.
Even though I have tried to change it to 800x600 the screen resolution doesn’t change.