PDA

View Full Version : [ubuntu] Grub menu lost after installing Windows 7



AN@S
May 30th, 2011, 12:11 PM
Hello,

After I installed Windows 7 on my Ubuntu 11.04 laptop (for a dual-boot) I lost the Grub menu, OK I know this is what's supposed to happen but after I tried to recover it using this guide (https://help.ubuntu.com/community/RecoveringUbuntuAfterInstallingWindows): Grub 2 was installed successfully but it boots to grub's command line tool!

After some digging I found that when I need to run Windows I have to manually type:


set root=(hd0,2)
chainloader +1
boot


And when I need to boot into Ubuntu I type:


set root=(hd0,7)
linux /vmlinuz root=/dev/sda7 ro
initrd /inird.img
boot


You see this is not so user-friendly, this is my /boot/grub/grub.cfg if you wanted to have a look:



#
# 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="0"
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='(/dev/sda,msdos7)'
search --no-floppy --fs-uuid --set=root b94cd233-4cbf-419e-afac-6a23ff9d8aaa
if loadfont /usr/share/grub/unicode.pf2 ; then
set gfxmode=auto
load_video
insmod gfxterm
fi
terminal_output gfxterm
insmod part_msdos
insmod ext2
set root='(/dev/sda,msdos7)'
search --no-floppy --fs-uuid --set=root b94cd233-4cbf-419e-afac-6a23ff9d8aaa
set locale_dir=($root)/boot/grub/locale
set lang=en_US
insmod gettext
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 ###
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, with Linux 2.6.38-8-generic' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
set gfxpayload=$linux_gfx_mode
insmod part_msdos
insmod ext2
set root='(/dev/sda,msdos7)'
search --no-floppy --fs-uuid --set=root b94cd233-4cbf-419e-afac-6a23ff9d8aaa
linux /boot/vmlinuz-2.6.38-8-generic root=UUID=b94cd233-4cbf-419e-afac-6a23ff9d8aaa ro quiet splash vt.handoff=7
initrd /boot/initrd.img-2.6.38-8-generic
}
menuentry 'Ubuntu, with Linux 2.6.38-8-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
set gfxpayload=$linux_gfx_mode
insmod part_msdos
insmod ext2
set root='(/dev/sda,msdos7)'
search --no-floppy --fs-uuid --set=root b94cd233-4cbf-419e-afac-6a23ff9d8aaa
echo 'Loading Linux 2.6.38-8-generic ...'
linux /boot/vmlinuz-2.6.38-8-generic root=UUID=b94cd233-4cbf-419e-afac-6a23ff9d8aaa ro single
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-2.6.38-8-generic
}
submenu "Previous Linux versions" {
menuentry 'Ubuntu, with Linux 2.6.35-28-generic' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
set gfxpayload=$linux_gfx_mode
insmod part_msdos
insmod ext2
set root='(/dev/sda,msdos7)'
search --no-floppy --fs-uuid --set=root b94cd233-4cbf-419e-afac-6a23ff9d8aaa
linux /boot/vmlinuz-2.6.35-28-generic root=UUID=b94cd233-4cbf-419e-afac-6a23ff9d8aaa ro quiet splash vt.handoff=7
initrd /boot/initrd.img-2.6.35-28-generic
}
menuentry 'Ubuntu, with Linux 2.6.35-28-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
set gfxpayload=$linux_gfx_mode
insmod part_msdos
insmod ext2
set root='(/dev/sda,msdos7)'
search --no-floppy --fs-uuid --set=root b94cd233-4cbf-419e-afac-6a23ff9d8aaa
echo 'Loading Linux 2.6.35-28-generic ...'
linux /boot/vmlinuz-2.6.35-28-generic root=UUID=b94cd233-4cbf-419e-afac-6a23ff9d8aaa ro single
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-2.6.35-28-generic
}
}
### 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='(/dev/sda,msdos7)'
search --no-floppy --fs-uuid --set=root b94cd233-4cbf-419e-afac-6a23ff9d8aaa
linux16 /boot/memtest86+.bin
}
menuentry "Memory test (memtest86+, serial console 115200)" {
insmod part_msdos
insmod ext2
set root='(/dev/sda,msdos7)'
search --no-floppy --fs-uuid --set=root b94cd233-4cbf-419e-afac-6a23ff9d8aaa
linux16 /boot/memtest86+.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###

### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Windows Recovery Environment (loader) (on /dev/sda1)" --class windows --class os {
insmod part_msdos
insmod ntfs
set root='(/dev/sda,msdos1)'
search --no-floppy --fs-uuid --set=root EC2A24FD2A24C704
drivemap -s (hd0) ${root}
chainloader +1
}
menuentry "Windows 7 (loader) (on /dev/sda2)" --class windows --class os {
insmod part_msdos
insmod ntfs
set root='(/dev/sda,msdos2)'
search --no-floppy --fs-uuid --set=root 7EFA4EF8FA4EAC69
chainloader +1
}
### 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 ###


Thanks in advance for the help :)

coffeecat
May 30th, 2011, 12:50 PM
I'm not quite sure exactly what happened when you reinstalled grub2 using the link you posted because I find that link quite hard to follow. This is the community documentation grub 2 page:

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

And its section on reinstalling grub is a little clearer, here:

https://help.ubuntu.com/community/Grub2#Reinstalling%20GRUB%202

Be that as it may, since you are able to boot into your Ubuntu installation by entering those lines at the grub prompt, it would be worth simply reinstalling grub2 to the mbr from within Ubuntu.

Boot into Ubuntu on sda7 and run:


sudo grub-install /dev/sdaNote that you don't have to use either of the --root-directory or --boot-directory options if you are already in the installation you want to install grub for. Now, for good measure:


sudo update-grubThat second may not be necessary because your grub.cfg looks OK, but it won't do any harm.

AN@S
May 30th, 2011, 03:55 PM
I'm not quite sure exactly what happened when you reinstalled grub2 using the link you posted because I find that link quite hard to follow. This is the community documentation grub 2 page:

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

And its section on reinstalling grub is a little clearer, here:

https://help.ubuntu.com/community/Grub2#Reinstalling%20GRUB%202

Be that as it may, since you are able to boot into your Ubuntu installation by entering those lines at the grub prompt, it would be worth simply reinstalling grub2 to the mbr from within Ubuntu.

Boot into Ubuntu on sda7 and run:


sudo grub-install /dev/sdaNote that you don't have to use either of the --root-directory or --boot-directory options if you are already in the installation you want to install grub for. Now, for good measure:


sudo update-grubThat second may not be necessary because your grub.cfg looks OK, but it won't do any harm.

Oh That worked and was easy! Thanks. I previously tried that from the live CD and didn't work, never thought of trying it from inside Ubuntu installation.

Thanks again :)

coffeecat
May 30th, 2011, 04:01 PM
Good luck! :)

NoNameWill
May 30th, 2011, 05:55 PM
Oh That worked and was easy! Thanks. I previously tried that from the live CD and didn't work, never thought of trying it from inside Ubuntu installation.

Thanks again :)


It won't work from a live cd till you mount the partition. I had a similar situation trying to dual boot. drs305 helped me.

http://ubuntuforums.org/showthread.php?t=1770191