466

My system is not dual-boot, I run a standard Ubuntu desktop system "on the metal" (I think running it in a VM is the same).

Pressing c while booting does not cause the GRUB menu to appear (which I believe it does for a dual-boot system).

How can I get the GRUB-menu to present itself on a single-boot system?

Peter.O
  • 25,251

10 Answers10

461

Menu will appear if you press and hold Shift during loading Grub, if you boot using BIOS. When your system boots using UEFI, press Esc.

For permanent change you'll need to edit your /etc/default/grub file:

Place a # symbol at the start of line GRUB_HIDDEN_TIMEOUT=0 to comment it out. If that line doesn't exist, then you can comment out this line instead: # GRUB_TIMEOUT_STYLE=hidden, and then change GRUB_TIMEOUT=0 to GRUB_TIMEOUT=5, for instance, to give the grub menu a 5 second timeout before it automatically logs you in.

Save changes and run sudo update-grub to apply changes.

Documentation: https://help.ubuntu.com/community/Grub2

Gabriel Staples
  • 11,502
  • 14
  • 97
  • 142
103

I have tried both the Shift and Space keys but nothing works. Only the Esc key works for Ubuntu 14.04 and 16.04 to get Grub Menu at boot time.

Kevin Bowen
  • 20,055
  • 57
  • 82
  • 84
MAK
  • 1,139
45

In Ubuntu 18.04, there is no GRUB_HIDDEN_TIMEOUT=0 line in /etc/default/grub - instead there is GRUB_TIMEOUT_STYLE=hidden. According to info -f grub -n 'Simple configuration' :

if this option is unset or set to 'menu', then GRUB will display the menu and then wait for the timeout set by 'GRUB_TIMEOUT' to expire before booting the default entry. Pressing a key interrupts the timeout.

So if you either remove or comment out the line as:

#GRUB_TIMEOUT_STYLE=hidden

and run sudo update-grub, then the menu will show by default.

18.04 + Not dual boot, boots in grub 5 seconds:

GRUB_TIMEOUT_STYLE=false

GRUB_TIMEOUT= (no value). Works fine LVM.

Arya
  • 671
21
  • Keep hitting Shift until you see "Grub Loading Message"
  • After the message, hold the Shift down until the menu appears.
cmcginty
  • 6,016
17

By default, GRUB will show the menu if there is a second operating system installed. If only Ubuntu is installed, then GRUB will generally load Ubuntu without showing the menu. To reconfigure GRUB to always show a menu:

  1. Edit /etc/default/grub:

    Set GRUB_HIDDEN_TIMEOUT= (no value after the = sign).
    Set GRUB_TIMEOUT=n to show the menu for n seconds.

  2. Run update-grub to regenerate /boot/grub/grub.cfg based on the /etc/default/grub settings.

You can get GRUB to show the menu even if the default GRUB_HIDDEN_TIMEOUT=0 setting is in effect:

  • If your computer uses BIOS for booting, then hold down the Shift key while GRUB is loading to get the boot menu.
  • If your computer uses UEFI for booting, press Esc several times while GRUB is loading to get the boot menu.

Hopefully this clears up confusion as to why Shift works for some users and Esc works for others.

200_success
  • 1,259
  • 12
  • 22
11

Edit /etc/default/grub (sudo -H gedit /etc/default/grub)...

change:

GRUB_TIMEOUT_STYLE=hidden

to:

GRUB_TIMEOUT_STYLE=menu

then save the file and quit the editor. Next run:

sudo update-grub 

GRUB_TIMEOUT_STYLE

If this option is unset or set to menu, then GRUB will display the menu and then wait for the timeout set by GRUB_TIMEOUT to expire before booting the default entry. Pressing a key interrupts the timeout.

If this option is set to countdown or hidden, then, before displaying the menu, GRUB will wait for the timeout set by GRUB_TIMEOUT to expire. If ESC is pressed during that time, it will display the menu and wait for input. If a hotkey associated with a menu entry is pressed, it will boot the associated menu entry immediately. If the timeout expires before either of these happens, it will boot the default entry. In the countdown case, it will show a one-line indication of the remaining time.

heynnema
  • 73,649
8

For newer Ubuntu versions there is no GRUB_HIDDEN_TIMEOUT instead there is GRUB_TIMEOUT_STYLE which is set to hidden by default.

Open the file sudo nano /etc/default/grub Change value of GRUB_TIMEOUT_STYLE from hidden to menu and make sure GRUB_TIMEOUT is not set to 0 then run

sudo update-grub

Done!!!

knoftrix
  • 419
3

I've heard Shift does it. But I've used Space before and it worked.

Habitual
  • 254
1

Simple answer:

In the file /etc/default/grub, set GRUB_TIMEOUT=1, not 0. (Or set it to some other positive number, which is interpreted as seconds.) Then run sudo update-grub after saving the edit.

Terminal one-liner to do this:

sudo sed -i 's/^.*GRUB_TIMEOUT=.*$/GRUB_TIMEOUT=1/' /etc/default/grub && sudo update-grub
Majal
  • 8,249
-1

For me, I found the issue was that I had left a USB stick plugged in to the computer. I suppose the computer was attempting to boot from the USB stick.

Once I had removed the USB stick, I could press shift or esc or space (depending on the version of Ubuntu you are using, I think).

Flimm
  • 44,031