PDA

View Full Version : [SOLVED] No GRUB on new dual boot install



holy-harp
August 20th, 2017, 08:17 AM
I have had Win7 on my laptop for many years on my Toshiba laptop (old BIOS, not UEFI). I have many partitions and I set aside one for Kubuntu (I believe I set it up as an active partition, not a logical partition. From a live CD, I installed Kubuntu 16.04 for a dual boot. When I rebooted it went to WIN7; I expected I'd get a menu to give me a choice of booting to Win7 or Kubuntu. I installed boot-repair several times but could not get Recommended Repair to complete ("GRUB is still present" would not go away). I created a Boot Info file. Here is the beginning of it:

=> Windows 7/8/2012 is installed in the MBR of /dev/sda.

sda1: __________________________________________________ ________________________

File system: ntfs
Boot sector type: Windows 7/2008: NTFS
Boot sector info: No errors found in the Boot Parameter Block.
Operating System:
Boot files: /bootmgr /Boot/BCD /Windows/System32/winload.exe

sda2: __________________________________________________ ________________________

File system: ntfs
Boot sector type: Windows 7/2008: NTFS
Boot sector info: No errors found in the Boot Parameter Block.
Operating System:
Boot files:

sda3: __________________________________________________ ________________________

File system: ext4
Boot sector type: Grub2 (v1.99-2.00)
Boot sector info: Grub2 (v2.00) is installed in the boot sector of sda3
and looks at sector 218739200 of the same hard drive
for core.img. core.img is at this location and looks
for (,msdos3)/boot/grub. It also embeds following
components:

modules
-------------------------------------------------------
fshelp ext2 part_msdos biosdisk
-------------------------------------------------------
Operating System: Ubuntu 16.04.3 LTS
Boot files: /boot/grub/grub.cfg /etc/fstab
/boot/grub/i386-pc/core.img

Partition Boot Start Sector End Sector # of Sectors Id System

/dev/sda1 * 2,048 91,471,871 91,469,824 7 NTFS / exFAT / HPFS
/dev/sda2 91,471,872 109,221,887 17,750,016 7 NTFS / exFAT / HPFS
/dev/sda3 109,221,888 316,657,663 207,435,776 83 Linux


Device UUID TYPE LABEL

/dev/loop0 squashfs
/dev/sda1 2632177C32175063 ntfs 0 Win
/dev/sda10 245ABBAE5ABB7B5E ntfs Web
/dev/sda11 F442CBAF42CB74C0 ntfs z
/dev/sda12 4c7f24ab-2311-41b0-ac48-9cf15cb77c8b swap
/dev/sda2 BCB65423B653DC88 ntfs E 0l Temp
/dev/sda3 fcebf179-9854-4fb7-b78e-0cb43f7c25d3 ext4

I think that you need to see the GRUB.cfg to be able to help me. It is long so I'm a little reticent about posting it. I'm new to this forum so if there is a more elegant or polite way of doing things, please let me know.
#
# 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
if [ "${next_entry}" ] ; then
set default="${next_entry}"
set next_entry=
save_env next_entry
set boot_once=true
else
set default="0"
fi

if [ x"${feature_menuentry_id}" = xy ]; then
menuentry_id_option="--id"
else
menuentry_id_option=""
fi

export menuentry_id_option

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 {
if [ x$feature_all_video_module = xy ]; then
insmod all_video
else
insmod efi_gop
insmod efi_uga
insmod ieee1275_fb
insmod vbe
insmod vga
insmod video_bochs
insmod video_cirrus
fi
}

if [ x$feature_default_font_path = xy ] ; then
font=unicode
else
insmod part_msdos
insmod ext2
set root='hd0,msdos3'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos3 --hint-efi=hd0,msdos3 --hint-baremetal=ahci0,msdos3 fcebf179-9854-4fb7-b78e-0cb43f7c25d3
else
search --no-floppy --fs-uuid --set=root fcebf179-9854-4fb7-b78e-0cb43f7c25d3
fi
font="/usr/share/grub/unicode.pf2"
fi

if loadfont $font ; then
set gfxmode=auto
load_video
insmod gfxterm
set locale_dir=$prefix/locale
set lang=en_US
insmod gettext
fi
terminal_output gfxterm
if [ "${recordfail}" = 1 ] ; then
set timeout=30
else
if [ x$feature_timeout_style = xy ] ; then
set timeout_style=menu
set timeout=10
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
else
set timeout=10
fi
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
#set_background_image "images/tile.png";

set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
if background_color 0,0,0; 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
menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-fcebf179-9854-4fb7-b78e-0cb43f7c25d3' {
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_msdos
insmod ext2
set root='hd0,msdos3'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos3 --hint-efi=hd0,msdos3 --hint-baremetal=ahci0,msdos3 fcebf179-9854-4fb7-b78e-0cb43f7c25d3
else
search --no-floppy --fs-uuid --set=root fcebf179-9854-4fb7-b78e-0cb43f7c25d3
fi
linux /boot/vmlinuz-4.10.0-28-generic root=UUID=fcebf179-9854-4fb7-b78e-0cb43f7c25d3 ro quiet splash $vt_handoff
initrd /boot/initrd.img-4.10.0-28-generic
}
submenu 'Advanced options for Ubuntu' $menuentry_id_option 'gnulinux-advanced-fcebf179-9854-4fb7-b78e-0cb43f7c25d3' {
menuentry 'Ubuntu, with Linux 4.10.0-28-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.10.0-28-generic-advanced-fcebf179-9854-4fb7-b78e-0cb43f7c25d3' {
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_msdos
insmod ext2
set root='hd0,msdos3'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos3 --hint-efi=hd0,msdos3 --hint-baremetal=ahci0,msdos3 fcebf179-9854-4fb7-b78e-0cb43f7c25d3
else
search --no-floppy --fs-uuid --set=root fcebf179-9854-4fb7-b78e-0cb43f7c25d3
fi
echo 'Loading Linux 4.10.0-28-generic ...'
linux /boot/vmlinuz-4.10.0-28-generic root=UUID=fcebf179-9854-4fb7-b78e-0cb43f7c25d3 ro quiet splash $vt_handoff
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-4.10.0-28-generic
}
menuentry 'Ubuntu, with Linux 4.10.0-28-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.10.0-28-generic-recovery-fcebf179-9854-4fb7-b78e-0cb43f7c25d3' {
recordfail
load_video
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_msdos
insmod ext2
set root='hd0,msdos3'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos3 --hint-efi=hd0,msdos3 --hint-baremetal=ahci0,msdos3 fcebf179-9854-4fb7-b78e-0cb43f7c25d3
else
search --no-floppy --fs-uuid --set=root fcebf179-9854-4fb7-b78e-0cb43f7c25d3
fi
echo 'Loading Linux 4.10.0-28-generic ...'
linux /boot/vmlinuz-4.10.0-28-generic root=UUID=fcebf179-9854-4fb7-b78e-0cb43f7c25d3 ro recovery nomodeset
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-4.10.0-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='hd0,msdos3'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos3 --hint-efi=hd0,msdos3 --hint-baremetal=ahci0,msdos3 fcebf179-9854-4fb7-b78e-0cb43f7c25d3
else
search --no-floppy --fs-uuid --set=root fcebf179-9854-4fb7-b78e-0cb43f7c25d3
fi
knetbsd /boot/memtest86+.elf
}
menuentry 'Memory test (memtest86+, serial console 115200)' {
insmod part_msdos
insmod ext2
set root='hd0,msdos3'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos3 --hint-efi=hd0,msdos3 --hint-baremetal=ahci0,msdos3 fcebf179-9854-4fb7-b78e-0cb43f7c25d3
else
search --no-floppy --fs-uuid --set=root fcebf179-9854-4fb7-b78e-0cb43f7c25d3
fi
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 $menuentry_id_option 'osprober-chain-2632177C32175063' {
insmod part_msdos
insmod ntfs
set root='hd0,msdos1'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 2632177C32175063
else
search --no-floppy --fs-uuid --set=root 2632177C32175063
fi
parttool ${root} hidden-
chainloader +1
}
set timeout_style=menu
if [ "${timeout}" = 0 ]; then
set timeout=10
fi
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/30_uefi-firmware ###
### END /etc/grub.d/30_uefi-firmware ###

### 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 ${config_directory}/custom.cfg ]; then
source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f $prefix/custom.cfg ]; then
source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###

Thanks! Geoffrey

yancek
August 20th, 2017, 02:53 PM
At the beginning of the bootinfo script, you see that windows is installed in the MBR of the drive. If you leave that you will need to manually configure the windows boot file with bcdedit to create an entry for Kubuntu. Since you have windows code in the MBR, the contents of grub.cfg are irrelevant because it is never seen by the windows bootloader. It also shows that Grub is installed to the Kubuntu partition (sda3) and not the MBR.

You do not need to mark any Linux system as "active" or as a "boot" partition as that is only necessary with windows.

The link below gives several options for re-installing Grub2 to the MBR including using boot repair. If you want to have windows in the MBR, you will have to manually configure that yourself with bcdedit.

https://help.ubuntu.com/community/Grub2/Installing#Fixing_a_Broken_System

oldfred
August 20th, 2017, 03:43 PM
Added code tags.
Easy to do with Forum's advanced editor and # icon.

Follow Yancek's advice.

You installed grub to a partition boot sector. But that is not used for booting, normally. And grub2 says not to install grub2 to a partition as it is unreliable. Some third party Windows boot loaders want you to install grub to the partition boot sector, since Windows does not directly boot anything other than Windows.

BIOS systems boot by jumping to drive's MBR, so you have to install boot loader into MBR of a drive like sda, not a partition like sda3.

holy-harp
August 21st, 2017, 11:15 AM
Thank you yancek and OldFred, your posts were informative, understandable, logical and helpful.&nbsp; I have been successful in setting up GRUB on sda to show a boot menu with Kubuntu and Win7.&nbsp; They both work.&nbsp; <br>&nbsp;&nbsp; It was a lot of work.&nbsp; Forgive me for writing down a few notes:&nbsp; I had trouble with my Live CD (it would take 3 or 4 or 5 trys and not boot; it had a lot of circular scratches, I'll have to check my CD drive), so I tried to make a Live USB flash drive.&nbsp; I had difficulty.&nbsp; I made 3 separate drives; tried them on different ports multiple times.&nbsp; I found I had to enable Legacy USB in my BIOS. Then I began to grapple with the link you gave on reinstalling GRUB2.&nbsp; The Ubuntu Help on Advanced Options for Boot-Repair was very sparce. Source Forge had some helpful screen shots.&nbsp; So, I dug in, searching for examples and working to understand before applying it. The GRUB Location Option tab was empty.&nbsp; That was confusing but I am a man of faith.&nbsp; I took screen shots of everything (another new thing to learn - nice gui).&nbsp; I opened konsole and pasted code.&nbsp; Then I got a NetFlex message.&nbsp; I didn't know ahead of time or I would have ticked the box in the general options tab.&nbsp; So, I had to figure out how to back up the MBR.&nbsp; I did that. Boot-Repair finished and it works.&nbsp; Thanks to the writers of code.&nbsp; May they and you enjoy a beautiful peaceful walk in a park.<br>&nbsp;&nbsp;&nbsp;
I'm not sure why I have Adobe NetFlex, a Digital Rights Management software.&nbsp; It could be for my Nook or 3M Cloud digital library access software.&nbsp; I am afraid I might need to restore my MBR and then redo boot-repair with the NetFlex option.&nbsp; Anyway, I can boot to Kubuntu and start learning and adjusting my settings.&nbsp; Thank you again.

oldfred
August 21st, 2017, 03:14 PM
Glad you got it working.

Generally you do not need to back up MBR. It is relatively easy to reinstall a Windows or grub2 boot loader to MBR rather than restore a backup. With either Boot-Repair, manually or for Windows its repair console.

But best to always have current version flash drive live installer or Windows repair/recovery disk for every operating system you have installed.
Boot-Repair can only do minor fixes to Windows (like MBR), so for other Windows fixes you need the Windows repair disk.