GRUB terminal console mode error

There are a couple of strange issue with Ubuntu MATE’s GRUB menu. The first one, which I asked about here, has to do with accessing the menu. When I hit shift immediately after the startup screen, GRUB loading (or something like that) briefly appears, then I get a blank screen, and then the normal boot process re-commences and I find myself with the normal LUKS password prompt (I’m using full-disk encryption). One (not entirely satisfactory) way to handle that is to “force” the GRUB menu to appear by commenting out the line GRUB_HIDDEN_TIMEOUT=0 in /etc/default/grub.

Second issue: I have my system set to boot in non-graphical mode, so I wanted also to set GRUB to non-graphical mode as well by uncommenting the line GRUB_TERMINAL=console. However, when I do that I get an error message: error: no video mode activated. Is there something with the MATE version of GRUB that only allows for a graphical GRUB menu?

You got part of it…

In /etc/default/grub, set

GRUB_GFXMODE=640x480

or whatever console text resolution you want.

No good, I still get the error.

According to the comment in /etc/default/grub, that setting is for the graphical terminal.

That is what I use here. The mode is set via the VESA Bios Extension calls and expect a VESA Bios. The only other piece that I use is to show the boot messages:

GRUB_GFXPAYLOAD_LINUX=text

The linux kernel expects an initial valid video mode from grub.


"
In GRUB2 the preferred method of setting framebuffer resolution (to GRUB and the kernel) is to edit /etc/default/grub to contain these variables:

GRUB_GFXMODE sets the resolution of GRUB
GRUB_GFXPAYLOAD_LINUX controls whether the linux kernel will keep the resolution, and if you want the linux kernel to use different resolution than GRUB, you can set it with this variable in form widthxheight.
"

Grub manual:
http://www.gnu.org/software/grub/manual/grub.html#gfxmode

To answer your question though, MATE works fine with a text based grub boot menu.

It works OK if I set GRUB_TIMEOUT=1. I only get the error message if I set it to 0.

I’m not exactly sure what you are trying to achieve, but…

There seems to be some grub bugs with timeout=0 getting “no video mode”. I can’t tell if that message is coming from grub or Plymouth (the splash screen thingy) or even the kernel. It is probably from grub for when grub shows the command output it switches to a another screen. Normally grub just shows a large grey block but it can be setup to output text if necessary.

Check this out which may/may not help you as it really is about showing Grub Menu?:

It's definitely not coming from Plymouth, because I removed the splash parameter from my kernel command line; my system boots to a tty terminal. I kept the quiet parameter because I don't want to see the text output scrolling by. The way I got rid of the large grey block was by disabling the graphical GRUB terminal (by uncommenting GRUB_TERMINAL=console). But yes, if GRUB_TIMEOUT is set to 0, the "no video message" appears, and goes away if it's set to some positive value.

EDIT: "and goes away if it's set to some positive value" turns out to be wrong. GRUB_GFXPAYLOAD_LINUX=text has to be included as well.

The issue I'm having isn't with getting the GRUB menu to appear. The problem is that the way to do that is to modify /etc/default/grub more-or-less as you've described, but then once that's done, the menu ALWAYS appears. Once upon a time, you could get to the GRUB menu just by hitting shift just after the bios startup screen, without having to modify /etc/default/grub at all, so that once you've finished whatever recovery operations you needed to do, things would go back to normal without the GRUB menu showing up at boot time. But with MATE that doesn't work: to get the menu you have to edit the GRUB config file, and once it's edited, the menu will always appear until you've undone those edits.

1 Like

There might be some ideas for you here?: