39

After trying (and failing) to install better ATI drivers in 11.10, I've somehow lost my grub menu at boot time. The screen does change to the familiar purple colour, but instead of a list of boot options it's just blank solid colour, and then disappears quickly and boots into the default entry normally.

How can I get the bootloader back? I've tried sudo update-grub and also various different combinations of resolutions and colour depths in startupmanager application with no success (640x480, 1024x768, 1600x1200, 16 bits, 8 bits, 10 second delay, 7 second delay, 2 second delay...)

edit:

I have already tried holding down Shift during bootup and it does not seem to change the behaviour. I get the message "GRUB Loading" in the terminal, but then the place where the grub menu normally appears I get a solid blank magenta screen for a while.

Here are the contents of /etc/default/grub

# 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_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=" vga=798 splash"

# 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"
8
  • Do you mean that it boots to lightdm or to your desktop or do you mean that you cannot boot to lightdm? Can you post the contents of the file /etc/default/grub
    – fossfreedom
    Dec 13, 2011 at 12:36
  • have you tried pressing and holding the shift key right before ubuntu loads? Dec 13, 2011 at 12:44
  • it boots to lightdm
    – wim
    Dec 13, 2011 at 13:57
  • what happens if you change GRUB_CMDLINE_LINUX to "" and run update-grub?
    – fossfreedom
    Dec 13, 2011 at 23:20
  • @fossfreedom just tried it, it does not seem to change the behaviour at all
    – wim
    Dec 14, 2011 at 11:23

9 Answers 9

29

I was having the same problem on my laptop, getting the magenta blank screen. Here's what worked for me. I changed:

GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true

to:

GRUB_HIDDEN_TIMEOUT=10
GRUB_HIDDEN_TIMEOUT_QUIET=false

And since I didn't have a CRT, instead I changed:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

to:

GRUB_CMDLINE_LINUX_DEFAULT=""

Then ran update-grub. On restart I was then able to get the menu by holding down the Shift key.

1
  • +1 but I am on 12.04 and I don't need to change GRUB_CMDLINE_LINUX_DEFAULT to make it work. I guess this is only related to the graphic driver issue and not needed to show grub menu.
    – laurent
    Jun 17, 2012 at 14:01
22

To show the menu only when you need it

Hold SHIFT from when you see the BIOS load screen. The GRUB menu should show up.

To always show it

Run Gedit as root (gksu gedit), and open the file /etc/default/grub. There should be something like this in there:

GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true

Change it to this:

GRUB_HIDDEN_TIMEOUT=10
GRUB_HIDDEN_TIMEOUT_QUIET=false

Save it, run sudo update-grub from a terminal, and reboot. The GRUB menu should show up.

2
  • 3
    I tried your suggestion, but it does not change the problem - I still get a solid magenta screen with no text.
    – wim
    Dec 13, 2011 at 14:03
  • 1
    +1 - but on my 12.04, I need to modify grub (the permanent solution) and the grub menu appears only if I hold down Shift. Only pressing Shift doesn't show the grub menu.
    – laurent
    Jun 17, 2012 at 13:56
17

None of the above suggestions worked for me. So I tried "commenting" the two entries. i.e. I changed them from

GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true

to:

#GRUB_HIDDEN_TIMEOUT=0
#GRUB_HIDDEN_TIMEOUT_QUIET=true

I now get the grub menu screen for 10 seconds.

GRUB_HIDDEN_TIMEOUT controls whether or not the menu is shown. The default behavior is to hide the menu if only one operating system is present. If a user with only Ubuntu wishes to display the menu, place a # symbol at the start of this line to disable the hidden menu feature. For more information, see the Grub 2 Ubuntu help page

2
  • 2
    Thanks, that's the real answer: comment the HIDDEN lines, otherwise it will not work as desired: to force the menu to appear.
    – sorin
    Nov 24, 2013 at 15:51
  • 1
    Even that didn't work for me :( I just hate grub now.
    – yPhil
    May 16, 2016 at 23:55
6

I have a similar problem in Ubuntu 11.10. For me it's just a black screen with "grub loading".

But I found a workaround. I can get the menu to display by activating the console mode by uncommenting this line in /etc/default/grub :

GRUB_TERMINAL=console

Good luck!

5

After changing

GRUB_HIDDEN_TIMEOUT=10
GRUB_HIDDEN_TIMEOUT_QUIET=false

uncomment the line

#GRUB_GFXMODE=640x480

Once that is done, Run sudo update-grub and update the Grub. Then restart the computer and the issue will be fixed. I had it fixed. I had this issue when I was using a CRT monitor. Try it. best of Luck.

1

None of the above works for me. After compared with the /etc/default/grub on a machine that shows GRUB, I uncommented the following:

GRUB_TERMINAL=serial    
GRUB_SERIAL_COMMAND="serial --unit=0 --speed=115200 --stop=1"

then run sudo update-grub and reboot, the GRUB menu shows.

Other lines are:

GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=2
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
#GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX_DEFAULT=""
GRUB_CMDLINE_LINUX=""

hope this helps to you.

1

All the same probs here. Even after commenting the HIDDEN lines and uncommenting GRUB_TERMINAL=console

I also added GRUB_TIMEOUT_STYLE=menu to no avail.

But after RTFM here: https://help.ubuntu.com/community/Grub2#Boot_Display_Behavior (scroll to --> "GRUB vs GRUB2")

it says:

  1. Hold down (right) SHIFT to display the menu during boot. In certain cases, pressing the ESC key may also display the menu.

Pressing ESC once after BIOS notice (F2 in my case) did the trick for me!

0

Check if you have "legacy USB" unchecked in the BIOS. I had it unchecked some time ago to test USB IRQs and forgot about it. Then I had no way to access the grub menu (although F2 still worked to access said BIOS).

0

I had this same problem, neither ESC nor Shift would bring up the GRUB menu during boot. Discovered that the KVM switch was the problem. Pulling the keyboard from the KVM switch and plugging the keyboard directly into a USB port on the PC immediately brought up the GRUB menu during boot. Hope this helps someone....

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .