3

after upgrading to 19.04 the Grub menu have become hidden. It still works and I can boot to both Windows 10 and Ubuntu by blindly finding the entry and pressing enter. I have tried to edit the /etc/default/grub and running sudo update-grub afterward but no change. Here is how it looks now:

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""
GRUB_TIMEOUT_STYLE=menu
GRUB_HIDDEN_TIMEOUT_QUIET=false

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

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

# 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'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"

I can't use either Shift or Esc to make it visible too. After pressing either of these, Grub doesn't work anymore and I need to turn my laptop off and on in order to boot.

Edit: Not sure if it helps or not, but I just realized that if I go to the BIOS when I exit BIOS the grub menu shows up with no problem. The next time I boot, the grub menu is invisible again.

Organic Marble
  • 23,641
  • 15
  • 70
  • 122
rezafa
  • 33
  • 1
    You should remove or comment out the line GRUB_HIDDEN_TIMEOUT_QUIET=false, it's deprecated. Then run sudo update -grub. I'm not sure if this solves your problem, but you should definitely try it. – mook765 May 10 '19 at 16:49
  • Thanks for your response. I did it, but as you imagined yourself, it didn't solve the problem. This was actually one of the lines that I added by reading other posts here trying to solve the problem. – rezafa May 10 '19 at 20:50

4 Answers4

5

I had exactly the same problem.

After trying several solutions, one did the trick (explaining with details in case someone else needs it):

  1. Edit /etc/default/grub by running in terminal while in the correct folder:

    sudo gedit grub
    
  2. Uncomment the line #GRUB_TERMINAL=console. The correct version shall be:

    GRUB_TERMINAL=console
    
  3. Save the file.

  4. Run in terminal:

    sudo update-grub
    
  5. Restart. GRUB menu shall appear now.

Note: I don't know why but graphical terminal wouldn't work. The console is a bit uglier but I don't care.

  • 1
    Thanks! It solved the problem. I wonder what could be the problem, maybe the graphic card driver? Anyway, thanks! – rezafa Jun 27 '19 at 15:25
1

I also had this problem. Your description lead me to the final solution: GRUB-GFXMODE=auto was the problem.

I entered the GRUB console by pressing C (after I had uncommented the GRUB console output in /etc/default/grub so that the GRUB menu was visible again) and ran the command videoinfo which returned nothing.

Ok, with an automode that doesn't work, any output is difficult ;-) That´s the cause of the problem. The system doesn´t automatically detect the screen resolution. It´s necessary to manually enter a proper value.

I changed to GRUB-GFXMODE=1280x800, which is the known resolution of my laptop, your values may of course differ. Editing the grub file was possible in graphic mode with file manager opened in root-mode (you need root privileges to alter a system file), for the grub-update command I used of course a terminal, as described in Felipe's post.

And finally, I had my beautiful GRUB screen back :-)

Martin
  • 11
0

For Manjaro 21.2 and above or Ubuntu 20.04 and above, add the following lines in /boot/grub/grub.cfg

videoinfo

And in /etc/default/grub comment the following line to enable grub theme

# Uncomment to disable graphical terminal
#GRUB_TERMINAL_OUTPUT=console

If this worked, you can instead add these lines into /etc/grub.d/00_header. This solution didn't work in Ubuntu 18.04 maybe because I didn't try harder, I don't know.

This solution assumes that grub issued theme compilation instruction to video module before it is completely loaded into memory. This crashes the video module but grub is unaffected in this case. Thus this solution forces grub to spend some time in console while the modules are loaded before ultimately moving to gfxmode

Hank W
  • 27
0

I had the same issue and I didn't settled with the ugly text/console menu.

The answer from Hank W solved it but blinks with the video information on each restart, so it is possible to use another command instead of videoinfo to the same purpose:

sleep .5

That way grub takes a time to load the modules before going into graphical mode and shows nothing to the screen.


Note: you can experiment with the sleep value (in seconds) to have it working and not taking much time. I found that sleep .1 still works fine in my system.


Note: just in case you are not sure how to include the command in the /etc/grub.d/00_header file, here is how I found (BEWARE editing grub files could bring your system not bootable)

sudo gedit /etc/grub.d/00_header

look for the line that says set gfxmode

set gfxmode=${GRUB_GFXMODE}
load_video
insmod gfxterm

and insert the command just before load_video, like this:

set gfxmode=${GRUB_GFXMODE}
sleep .1
load_video
insmod gfxterm

After that run

sudo grub-mkconfig -o /boot/grub/grub.cfg

and finally reboot. It worked for me!

Kbre
  • 1