Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

I recently installed Ubuntu on my system, and since my previous grub2 installation was messy, I decided to reinstall grub2 in this ubuntu partition.

Anyway it didn't totally work : grub-install didn't give any error, yet on reboot, grub doesn't show its menu, but only its command line.

I can manage to boot all the OSes on my computer from there, but it's something I'd like to avoid in the long term (typing 4 lines of code, with an american keymap is slightly slower than scrolling to a specific entry).

I have tried various settings of GRUB_TERMINAL, but I didn't get any change. There is no error message that I can see before the command line prompt, only grub command introduction message.

Here is my /boot/grub/grub.cfg :

#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
  set have_grubenv=true
  load_env
fi
set default="Debian GNU/Linux, with Linux 3.0.1-3.fc14.i686 (on /dev/sda5)"
if [ "${prev_saved_entry}" ]; then
  set saved_entry="${prev_saved_entry}"
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z "${boot_once}" ]; then
    saved_entry="${chosen}"
    save_env saved_entry
  fi
}

function recordfail {
  set recordfail=1
  if [ -n "${have_grubenv}" ]; then if [ -z "${boot_once}" ]; then save_env recordfail; fi; fi
}

function load_video {
  insmod vbe
  insmod vga
  insmod video_bochs
  insmod video_cirrus
}

insmod part_msdos
insmod ext2
set root='(hd0,msdos7)'
search --no-floppy --fs-uuid --set=root b34ab83e-0c3a-4671-bcd5-786b37622389
if loadfont /usr/share/grub/unicode.pf2 ; then
  set gfxmode=800x600x24
  load_video
  insmod gfxterm
  insmod part_msdos
  insmod ext2
  set root='(hd0,msdos7)'
  search --no-floppy --fs-uuid --set=root b34ab83e-0c3a-4671-bcd5-786b37622389
  set locale_dir=($root)/boot/grub/locale
  set lang=fr_FR
  insmod gettext
fi
terminal_input console
terminal_output gfxterm
if [ "${recordfail}" = 1 ]; then
  set timeout=-1
else
  set timeout=10
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
if background_color 44,0,30; then
  clear
fi
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###
function gfxmode {
    set gfxpayload="$1"
    if [ "$1" = "keep" ]; then
        set vt_handoff=vt.handoff=7
    else
        set vt_handoff=
    fi
}
if [ ${recordfail} != 1 ]; then
  if [ -e ${prefix}/gfxblacklist.txt ]; then
    if hwmatch ${prefix}/gfxblacklist.txt 3; then
      if [ ${match} = 0 ]; then
        set linux_gfx_mode=keep
      else
        set linux_gfx_mode=text
      fi
    else
      set linux_gfx_mode=text
    fi
  else
    set linux_gfx_mode=keep
  fi
else
  set linux_gfx_mode=text
fi
export linux_gfx_mode
if [ "$linux_gfx_mode" != "text" ]; then load_video; fi
menuentry 'Ubuntu, avec Linux 3.2.0-24-generic-pae' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    gfxmode $linux_gfx_mode
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos7)'
    search --no-floppy --fs-uuid --set=root b34ab83e-0c3a-4671-bcd5-786b37622389
    linux   /boot/vmlinuz-3.2.0-24-generic-pae root=UUID=b34ab83e-0c3a-4671-bcd5-786b37622389 ro   quiet splash $vt_handoff
    initrd  /boot/initrd.img-3.2.0-24-generic-pae
}
menuentry 'Ubuntu, avec Linux 3.2.0-24-generic-pae (mode de dépannage)' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos7)'
    search --no-floppy --fs-uuid --set=root b34ab83e-0c3a-4671-bcd5-786b37622389
    echo    'Chargement de Linux 3.2.0-24-generic-pae ...'
    linux   /boot/vmlinuz-3.2.0-24-generic-pae root=UUID=b34ab83e-0c3a-4671-bcd5-786b37622389 ro recovery nomodeset 
    echo    'Chargement du disque mémoire initial ...'
    initrd  /boot/initrd.img-3.2.0-24-generic-pae
}
submenu "Previous Linux versions" {
menuentry 'Ubuntu, avec Linux 3.2.0-23-generic-pae' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    gfxmode $linux_gfx_mode
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos7)'
    search --no-floppy --fs-uuid --set=root b34ab83e-0c3a-4671-bcd5-786b37622389
    linux   /boot/vmlinuz-3.2.0-23-generic-pae root=UUID=b34ab83e-0c3a-4671-bcd5-786b37622389 ro   quiet splash $vt_handoff
    initrd  /boot/initrd.img-3.2.0-23-generic-pae
}
menuentry 'Ubuntu, avec Linux 3.2.0-23-generic-pae (mode de dépannage)' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos7)'
    search --no-floppy --fs-uuid --set=root b34ab83e-0c3a-4671-bcd5-786b37622389
    echo    'Chargement de Linux 3.2.0-23-generic-pae ...'
    linux   /boot/vmlinuz-3.2.0-23-generic-pae root=UUID=b34ab83e-0c3a-4671-bcd5-786b37622389 ro recovery nomodeset 
    echo    'Chargement du disque mémoire initial ...'
    initrd  /boot/initrd.img-3.2.0-23-generic-pae
}
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry "Memory test (memtest86+)" {
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos7)'
    search --no-floppy --fs-uuid --set=root b34ab83e-0c3a-4671-bcd5-786b37622389
    linux16 /boot/memtest86+.bin
}
menuentry "Memory test (memtest86+, serial console 115200)" {
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos7)'
    search --no-floppy --fs-uuid --set=root b34ab83e-0c3a-4671-bcd5-786b37622389
    linux16 /boot/memtest86+.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###

### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Windows 7 (loader) (on /dev/sda1)" --class windows --class os {
    insmod part_msdos
    insmod ntfs
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set=root 9CDC9835DC980C20
    chainloader +1
}
menuentry "Windows Recovery Environment (loader) (on /dev/sda2)" --class windows --class os {
    insmod part_msdos
    insmod fat
    set root='(hd0,msdos2)'
    search --no-floppy --fs-uuid --set=root 8299-11DD
    drivemap -s (hd0) ${root}
    chainloader +1
}
menuentry "Debian GNU/Linux, with Linux 3.0.1-3.fc14.i686 (on /dev/sda5)" --class gnu-linux --class gnu --class os {
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos5)'
    search --no-floppy --fs-uuid --set=root 3065baea-4365-4203-876f-6cf898dcd3a6
    linux /boot/vmlinuz-3.0.1-3.fc14.i686 root=/dev/sda5 ro quiet
}
menuentry "Debian GNU/Linux, with Linux 3.0.1-3.fc14.i686 (recovery mode) (on /dev/sda5)" --class gnu-linux --class gnu --class os {
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos5)'
    search --no-floppy --fs-uuid --set=root 3065baea-4365-4203-876f-6cf898dcd3a6
    linux /boot/vmlinuz-3.0.1-3.fc14.i686 root=/dev/sda5 ro single
}
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###

and here is my /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="Debian GNU/Linux, with Linux 3.0.1-3.fc14.i686 (on /dev/sda5)"
#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=""

# 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"
GRUB_TERMINAL_INPUT="console"
GRUB_TERMINAL_OUTPUT="gfxterm"

# 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="800x600x24"

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

Is there any part of the configuration process that I missed? Grub has always worked out of the box in the past, at least when installed in ubuntu, so that's highly possible.

Thanks in advance,

Edit : Using aptitude to redownload and reinstall grub fixed the issue now. But still I'd like to know what was causing the issue.

share|improve this question
    
Did you solve the problem ? –  Suhaib Apr 23 '13 at 1:16
    
@Suhaib : As I said in my edit, I solved it by reinstalling grub. The problem didn't appear again, so I still don't know what was the cause. At the moment, I don't think this question is likely to help future visitors, including you, sorry. –  T. Verron Apr 23 '13 at 5:18
    
oh, oK. Can you please post it as a seperate solution and accept it please :-) –  Suhaib Apr 24 '13 at 2:50
    
The question is about the cause of the problem, rather than its solution. However, I understand it's hard to investigate an autosolved problem, so I'll just accept the answer about how to debug grub, should the problem reappear. –  T. Verron Apr 24 '13 at 6:21

1 Answer 1

up vote 2 down vote accepted

It's very hard to debug grub2 issues looking at the generated grub.cfg. The first thing to try when having such kind of issues with grub2 is to purge its packages and reinstall them. with it's "plain" configuration, grub2 is likely to work well.

However, to effectively debug grub2 issues, it's advisable to run it within qemu:

sync ; echo 3 > /proc/sys/vm/drop_caches ; qemu -hda /dev/sdx

This make the debug process faster (no need to reboot) and at the same time slows down grub2 allowing to see error messages otherwise too quick to be read at boot.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.