Dual boot: Grub works but menu is not shown

Summary: Grub menu is not showing but it is working, since I can access its options using arrow keys and ENTER.

I have a Dell Inspiron 5420 with dual boot, Win10 + Ubuntu. Windows came pre installed and I've just installed Ubuntu 20.04 (with UEFI + Secure Boot Off). Installation was sucessful.

When computer boots the Dell logo Screen is shown for 10 seconds (grub timeout) and then default OS boots (now it's Windows, but I've change to Ubuntu and back just to be sure Grub was being updated). Ubuntu is first in UEFI boot order.

If I use arrow keys to select other OS before the 10s, the other OS loads up.

Most weird thing is that if I press F12 during boot (dell key for more options) and select "Ubuntu", Grub menu shows perfectly, and works perfectly too.

I've had changed the following options with Grub-Customizer:

  • Change Timeout duration (10s, 15s, -1)
  • Change timeout style to "menu"
  • Change default OS
  • Change default resolution (640x480, 1024x768 and 1366x768)

All changes were applied (confirme by pressing F12 as explained above), but none made grub menu appear by default.

I didn't tried boot-repair, since it messed up my boot once. Update: boot-repair didn't worked too. Grub works but is not being displayed.

Contents of my /etc/default/grub file:

# 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="Windows Boot Manager (on /dev/sda1)"
GRUB_TIMEOUT_STYLE="menu"
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR="`lsb_release -i -s 2> /dev/null || echo Debian`"
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

# 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="1024x768"

# 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"

GRUB_SAVEDEFAULT="false"
export GRUB_COLOR_NORMAL="light-gray/black"
export GRUB_COLOR_HIGHLIGHT="magenta/black"

GRUB_GFXMODE=""
#GRUB_THEME="/boot/grub/themes/grub2-theme-breeze-5/theme.txt"
#GRUB_DISABLE_OS_PROBER="true"

Any suggestions will be appreciated!


Uncomment this line and update grub again.

#GRUB_TERMINAL="console"

I suspect it has something to do with Secure Boot, I've installed Windows with Secure Boot enabled, then I disabled and installed Ubuntu and it didn't show the grub menu. Only worked after this change.