Triple Booting Windows 7, 8.1 and Opensuse

I installed Windows 7 first, then Windows 8.1. With just those 2 operating systems installed, when I turned on my computer the Windows Boot Manager gave me the option to boot Windows 8.1 or Windows 7. That was convenient, but then I installed OpenSuse. The Grub Boot Manager came up when I turned my computer on now. Well that works until I want to boot Windows 7, because I only have the option to boot Windows 8.1 and OpenSuse. While scouring the internet some websites said that the Windows 8.1 option should bring up the Windows Boot Manager, but it doesn’t. I can’t boot to my Windows 7 installation at all and that’s my issue. I don’t care if I have to add OpenSuse to the Windows Boot Manager and disable the Grub Boot Manager altogether, or if I have to replace them both. I just want a way to boot my Windows 7 installation. I should add that I have very little experience using the Linux Terminal or really anything pertaining to OpenSuse at all. Please help me in finding a way to boot Windows 7, and make sure a noob like myself understands what to do. :slight_smile: Thanks!

Yes, it should.

On my laptop, the grub menu has two different entries to boot Windows 7. Does your grub menu have two different entries for Windows 8? If it does, have you tried them both? The point being that the Windows boot manager can have different options for the two different grub menu entries.

In any case, what you probably want, is to be able to boot linux from the Windows boot manager. I’m doing that on my laptop. I don’t think it is possible with UEFI, but since you started with Windows 7, you probably don’t have UEFI.

Please provide the output from:


# fdisk -l

Use code tags to post. You can generate code tags with by clicking the “#” symbol near the top of your edit box.

We need that information to give more detailed advice.

On 2014-04-26 08:36, Burklow wrote:
>
> I installed Windows 7 first, then Windows 8.1. With just those 2
> operating systems installed, when I turned on my computer the Windows
> Boot Manager gave me the option to boot Windows 8.1 or Windows 7. That
> was convenient, but then I installed OpenSuse. The Grub Boot Manager
> came up when I turned my computer on now. Well that works until I want
> to boot Windows 7, because I only have the option to boot Windows 8.1
> and OpenSuse. While scouring the internet some websites said that the
> Windows 8.1 option should bring up the Windows Boot Manager, but it
> doesn’t. I can’t boot to my Windows 7 installation at all and that’s my
> issue. I don’t care if I have to add OpenSuse to the Windows Boot
> Manager and disable the Grub Boot Manager altogether, or if I have to
> replace them both. I just want a way to boot my Windows 7 installation.
> I should add that I have very little experience using the Linux
> Terminal or really anything pertaining to OpenSuse at all. Please help
> me in finding a way to boot Windows 7, and make sure a noob like myself
> understands what to do. :slight_smile: Thanks!

I still need some coffee to be fully awake and understand all that you
said, but I’ll have a go :slight_smile:

In order to have Windows boot manager, with traditional BIOS+MBR boot
(ie, not UEFI+GPT), control the situation when you install Linux, or
rather openSUSE, you have to tell the Linux install to boot from its
root partition and do not touch the MBR.

Once things are wrong, we have to found how they went wrong. Assuming it
is an MBR system, you have to change Linux in that way (it will no
longer boot till next step), then restore Windows booting using windows
tools, and configure Windows boot using, for instance, EasyBCD. There
you tell it to offer linux grub as an extra entry.

You could try running this script to find out a lot of information about
your system boot:

bootinfoscript

However, if you are using UEFI+GPT, as is probable where Windows 8 and a
new computer are involved, scratch all the above and wait for someone
with UEFI knowledge to come by :wink:


Cheers / Saludos,

Carlos E. R.
(from 13.1 x86_64 “Bottle” at Telcontar)

You could try running this script to find out a lot of information about
your system boot:

bootinfoscript

                  Boot Info Script 0.61      [1 April 2012]


============================= Boot Info Summary: ===============================

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

sda1: __________________________________________________________________________

    File system:       ntfs
    Boot sector type:  Windows 8/2012: NTFS
    Boot sector info:  No errors found in the Boot Parameter Block.
    Operating System:  
    Boot files:        /bootmgr /Boot/BCD

sda2: __________________________________________________________________________

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

sda3: __________________________________________________________________________

    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 /Windows/System32/winload.exe

sda4: __________________________________________________________________________

    File system:       Extended Partition
    Boot sector type:  Grub2 (v1.99-2.00)
    Boot sector info:  Grub2 (v2.00) is installed in the boot sector of sda4 
                       and looks at sector 952058272 of the same hard drive 
                       for core.img. core.img is at this location and looks 
                       for (,msdos6)/boot/grub2.

sda5: __________________________________________________________________________

    File system:       swap
    Boot sector type:  -
    Boot sector info: 

sda6: __________________________________________________________________________

    File system:       ext4
    Boot sector type:  -
    Boot sector info: 
    Operating System:  Welcome to openSUSE 13.1 "Bottle" - Kernel ().
    Boot files:        /boot/grub2/grub.cfg /etc/fstab 
                       /boot/grub2/i386-pc/core.img

============================ Drive/Partition Info: =============================

Drive: sda _____________________________________________________________________

Disk /dev/sda: 500.1 GB, 500107862016 bytes, 976773168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

Partition  Boot  Start Sector    End Sector  # of Sectors  Id System

/dev/sda1               2,048       206,847       204,800   7 NTFS / exFAT / HPFS
/dev/sda2             206,848   452,483,071   452,276,224   7 NTFS / exFAT / HPFS
/dev/sda3         452,483,072   871,913,471   419,430,400   7 NTFS / exFAT / HPFS
/dev/sda4    *    871,913,472   976,773,119   104,859,648   f W95 Extended (LBA)
/dev/sda5         871,915,520   876,136,447     4,220,928  82 Linux swap / Solaris
/dev/sda6         876,138,496   976,752,639   100,614,144  83 Linux


"blkid" output: ________________________________________________________________

Device           UUID                                   TYPE       LABEL

/dev/sda1        F2B63E1FB63DE4AF                       ntfs       System Reserved
/dev/sda2        8EBA4A4FBA4A344D                       ntfs       
/dev/sda3        DABE4BB5BE4B8949                       ntfs       
/dev/sda5        00d201f4-1746-481e-ba0e-52184af7540f   swap       
/dev/sda6        2cb07381-d15f-402f-b7db-5eac0fd53b6a   ext4       

========================= "ls -l /dev/disk/by-id" output: ======================

total 0
lrwxrwxrwx 1 root root  9 Apr 26 13:18 ata-HGST_HTS725050A7E630_TF1500WHHZRE5M -> ../../sda
lrwxrwxrwx 1 root root 10 Apr 26 13:18 ata-HGST_HTS725050A7E630_TF1500WHHZRE5M-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 Apr 26 13:18 ata-HGST_HTS725050A7E630_TF1500WHHZRE5M-part2 -> ../../sda2
lrwxrwxrwx 1 root root 10 Apr 26 13:18 ata-HGST_HTS725050A7E630_TF1500WHHZRE5M-part3 -> ../../sda3
lrwxrwxrwx 1 root root 10 Apr 26 13:18 ata-HGST_HTS725050A7E630_TF1500WHHZRE5M-part4 -> ../../sda4
lrwxrwxrwx 1 root root 10 Apr 26 13:18 ata-HGST_HTS725050A7E630_TF1500WHHZRE5M-part5 -> ../../sda5
lrwxrwxrwx 1 root root 10 Apr 26 13:18 ata-HGST_HTS725050A7E630_TF1500WHHZRE5M-part6 -> ../../sda6
lrwxrwxrwx 1 root root  9 Apr 26 13:18 ata-hp_DVD-RAM_UJ8D1_SAD1609559 -> ../../sr0
lrwxrwxrwx 1 root root  9 Apr 26 13:18 scsi-1ATA_HGST_HTS725050A7E630_TF1500WHHZRE5M -> ../../sda
lrwxrwxrwx 1 root root 10 Apr 26 13:18 scsi-1ATA_HGST_HTS725050A7E630_TF1500WHHZRE5M-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 Apr 26 13:18 scsi-1ATA_HGST_HTS725050A7E630_TF1500WHHZRE5M-part2 -> ../../sda2
lrwxrwxrwx 1 root root 10 Apr 26 13:18 scsi-1ATA_HGST_HTS725050A7E630_TF1500WHHZRE5M-part3 -> ../../sda3
lrwxrwxrwx 1 root root 10 Apr 26 13:18 scsi-1ATA_HGST_HTS725050A7E630_TF1500WHHZRE5M-part4 -> ../../sda4
lrwxrwxrwx 1 root root 10 Apr 26 13:18 scsi-1ATA_HGST_HTS725050A7E630_TF1500WHHZRE5M-part5 -> ../../sda5
lrwxrwxrwx 1 root root 10 Apr 26 13:18 scsi-1ATA_HGST_HTS725050A7E630_TF1500WHHZRE5M-part6 -> ../../sda6
lrwxrwxrwx 1 root root  9 Apr 26 13:18 scsi-SATA_HGST_HTS725050A7_TF1500WHHZRE5M -> ../../sda
lrwxrwxrwx 1 root root 10 Apr 26 13:18 scsi-SATA_HGST_HTS725050A7_TF1500WHHZRE5M-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 Apr 26 13:18 scsi-SATA_HGST_HTS725050A7_TF1500WHHZRE5M-part2 -> ../../sda2
lrwxrwxrwx 1 root root 10 Apr 26 13:18 scsi-SATA_HGST_HTS725050A7_TF1500WHHZRE5M-part3 -> ../../sda3
lrwxrwxrwx 1 root root 10 Apr 26 13:18 scsi-SATA_HGST_HTS725050A7_TF1500WHHZRE5M-part4 -> ../../sda4
lrwxrwxrwx 1 root root 10 Apr 26 13:18 scsi-SATA_HGST_HTS725050A7_TF1500WHHZRE5M-part5 -> ../../sda5
lrwxrwxrwx 1 root root 10 Apr 26 13:18 scsi-SATA_HGST_HTS725050A7_TF1500WHHZRE5M-part6 -> ../../sda6
lrwxrwxrwx 1 root root  9 Apr 26 13:18 wwn-0x5000cca77fdc0ed1 -> ../../sda
lrwxrwxrwx 1 root root 10 Apr 26 13:18 wwn-0x5000cca77fdc0ed1-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 Apr 26 13:18 wwn-0x5000cca77fdc0ed1-part2 -> ../../sda2
lrwxrwxrwx 1 root root 10 Apr 26 13:18 wwn-0x5000cca77fdc0ed1-part3 -> ../../sda3
lrwxrwxrwx 1 root root 10 Apr 26 13:18 wwn-0x5000cca77fdc0ed1-part4 -> ../../sda4
lrwxrwxrwx 1 root root 10 Apr 26 13:18 wwn-0x5000cca77fdc0ed1-part5 -> ../../sda5
lrwxrwxrwx 1 root root 10 Apr 26 13:18 wwn-0x5000cca77fdc0ed1-part6 -> ../../sda6

================================ Mount points: =================================

Device           Mount_Point              Type       Options

/dev/sda2        /mnt/8EBA4A4FBA4A344D    fuseblk    (rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other,blksize=4096)
/dev/sda3        /mnt/DABE4BB5BE4B8949    fuseblk    (rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other,blksize=4096)
/dev/sda6        /                        ext4       (rw,relatime,data=ordered)


========================== sda6/boot/grub2/grub.cfg: ===========================

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

### BEGIN /etc/grub.d/00_header ###
if  -s $prefix/grubenv ]; then
  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="${saved_entry}"
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 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,msdos6'
if  x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos6 --hint-efi=hd0,msdos6 --hint-baremetal=ahci0,msdos6 --hint='hd0,msdos6'  2cb07381-d15f-402f-b7db-5eac0fd53b6a
else
  search --no-floppy --fs-uuid --set=root 2cb07381-d15f-402f-b7db-5eac0fd53b6a
fi
    font="/usr/share/grub2/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  x${boot_once} = xtrue ]; then
  set timeout=0
elif sleep --interruptible 0 ; then
  set timeout=8
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/10_linux ###
menuentry 'openSUSE 13.1' --class 'opensuse-13-1' --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-2cb07381-d15f-402f-b7db-5eac0fd53b6a' {
    load_video
    set gfxpayload=keep
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='hd0,msdos6'
    if  x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos6 --hint-efi=hd0,msdos6 --hint-baremetal=ahci0,msdos6 --hint='hd0,msdos6'  2cb07381-d15f-402f-b7db-5eac0fd53b6a
    else
      search --no-floppy --fs-uuid --set=root 2cb07381-d15f-402f-b7db-5eac0fd53b6a
    fi
    echo    'Loading Linux 3.11.10-7-desktop ...'
    linux    /boot/vmlinuz-3.11.10-7-desktop root=UUID=2cb07381-d15f-402f-b7db-5eac0fd53b6a   devfs=mount,dall   resume=/dev/disk/by-id/ata-HGST_HTS725050A7E630_TF1500WHHZRE5M-part5 splash=silent quiet showopts
    echo    'Loading initial ramdisk ...'
    initrd    /boot/initrd-3.11.10-7-desktop
}
submenu 'Advanced options for openSUSE 13.1' $menuentry_id_option 'gnulinux-advanced-2cb07381-d15f-402f-b7db-5eac0fd53b6a' {
    menuentry 'openSUSE 13.1, with Linux 3.11.10-7-desktop' --class 'opensuse-13-1' --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.11.10-7-desktop-advanced-2cb07381-d15f-402f-b7db-5eac0fd53b6a' {
        load_video
        set gfxpayload=keep
        insmod gzio
        insmod part_msdos
        insmod ext2
        set root='hd0,msdos6'
        if  x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos6 --hint-efi=hd0,msdos6 --hint-baremetal=ahci0,msdos6 --hint='hd0,msdos6'  2cb07381-d15f-402f-b7db-5eac0fd53b6a
        else
          search --no-floppy --fs-uuid --set=root 2cb07381-d15f-402f-b7db-5eac0fd53b6a
        fi
        echo    'Loading Linux 3.11.10-7-desktop ...'
        linux    /boot/vmlinuz-3.11.10-7-desktop root=UUID=2cb07381-d15f-402f-b7db-5eac0fd53b6a   devfs=mount,dall   resume=/dev/disk/by-id/ata-HGST_HTS725050A7E630_TF1500WHHZRE5M-part5 splash=silent quiet showopts
        echo    'Loading initial ramdisk ...'
        initrd    /boot/initrd-3.11.10-7-desktop
    }
    menuentry 'openSUSE 13.1, with Linux 3.11.10-7-desktop (recovery mode)' --class 'opensuse-13-1' --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.11.10-7-desktop-recovery-2cb07381-d15f-402f-b7db-5eac0fd53b6a' {
        load_video
        set gfxpayload=keep
        insmod gzio
        insmod part_msdos
        insmod ext2
        set root='hd0,msdos6'
        if  x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos6 --hint-efi=hd0,msdos6 --hint-baremetal=ahci0,msdos6 --hint='hd0,msdos6'  2cb07381-d15f-402f-b7db-5eac0fd53b6a
        else
          search --no-floppy --fs-uuid --set=root 2cb07381-d15f-402f-b7db-5eac0fd53b6a
        fi
        echo    'Loading Linux 3.11.10-7-desktop ...'
        linux    /boot/vmlinuz-3.11.10-7-desktop root=UUID=2cb07381-d15f-402f-b7db-5eac0fd53b6a  showopts apm=off noresume edd=off powersaved=off nohz=off highres=off processor.max_cstate=1 nomodeset  x11failsafe
        echo    'Loading initial ramdisk ...'
        initrd    /boot/initrd-3.11.10-7-desktop
    }
    menuentry 'openSUSE 13.1, with Linux 3.11.6-4-desktop' --class 'opensuse-13-1' --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.11.6-4-desktop-advanced-2cb07381-d15f-402f-b7db-5eac0fd53b6a' {
        load_video
        set gfxpayload=keep
        insmod gzio
        insmod part_msdos
        insmod ext2
        set root='hd0,msdos6'
        if  x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos6 --hint-efi=hd0,msdos6 --hint-baremetal=ahci0,msdos6 --hint='hd0,msdos6'  2cb07381-d15f-402f-b7db-5eac0fd53b6a
        else
          search --no-floppy --fs-uuid --set=root 2cb07381-d15f-402f-b7db-5eac0fd53b6a
        fi
        echo    'Loading Linux 3.11.6-4-desktop ...'
        linux    /boot/vmlinuz-3.11.6-4-desktop root=UUID=2cb07381-d15f-402f-b7db-5eac0fd53b6a   devfs=mount,dall   resume=/dev/disk/by-id/ata-HGST_HTS725050A7E630_TF1500WHHZRE5M-part5 splash=silent quiet showopts
        echo    'Loading initial ramdisk ...'
        initrd    /boot/initrd-3.11.6-4-desktop
    }
    menuentry 'openSUSE 13.1, with Linux 3.11.6-4-desktop (recovery mode)' --class 'opensuse-13-1' --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.11.6-4-desktop-recovery-2cb07381-d15f-402f-b7db-5eac0fd53b6a' {
        load_video
        set gfxpayload=keep
        insmod gzio
        insmod part_msdos
        insmod ext2
        set root='hd0,msdos6'
        if  x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos6 --hint-efi=hd0,msdos6 --hint-baremetal=ahci0,msdos6 --hint='hd0,msdos6'  2cb07381-d15f-402f-b7db-5eac0fd53b6a
        else
          search --no-floppy --fs-uuid --set=root 2cb07381-d15f-402f-b7db-5eac0fd53b6a
        fi
        echo    'Loading Linux 3.11.6-4-desktop ...'
        linux    /boot/vmlinuz-3.11.6-4-desktop root=UUID=2cb07381-d15f-402f-b7db-5eac0fd53b6a  showopts apm=off noresume edd=off powersaved=off nohz=off highres=off processor.max_cstate=1 nomodeset  x11failsafe
        echo    'Loading initial ramdisk ...'
        initrd    /boot/initrd-3.11.6-4-desktop
    }
}


### 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+ ###
### END /etc/grub.d/20_memtest86+ ###

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

### BEGIN /etc/grub.d/30_os-prober ###
menuentry 'Windows 8 (loader) (on /dev/sda1)' --class windows --class os  $menuentry_id_option 'osprober-chain-F2B63E1FB63DE4AF' {
    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 --hint='hd0,msdos1'   F2B63E1FB63DE4AF
    else
      search --no-floppy --fs-uuid --set=root F2B63E1FB63DE4AF
    fi
    drivemap -s (hd0) ${root}
    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  ${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 ###

### BEGIN /etc/grub.d/90_persistent ###
### END /etc/grub.d/90_persistent ###
--------------------------------------------------------------------------------

=============================== sda6/etc/fstab: ================================

--------------------------------------------------------------------------------
/dev/disk/by-id/ata-HGST_HTS725050A7E630_TF1500WHHZRE5M-part5 swap                 swap       defaults              0 0
/dev/disk/by-id/ata-HGST_HTS725050A7E630_TF1500WHHZRE5M-part6 /                    ext4       acl,user_xattr        1 1
/dev/disk/by-uuid/DABE4BB5BE4B8949 /mnt/DABE4BB5BE4B8949 auto nosuid,nodev,nofail,x-gvfs-show,x-gvfs-name=Windows%208.1 0 0
/dev/disk/by-uuid/8EBA4A4FBA4A344D /mnt/8EBA4A4FBA4A344D auto nosuid,nodev,nofail,x-gvfs-show,x-gvfs-name=Windows%207 0 0
--------------------------------------------------------------------------------

=================== sda6: Location of files loaded by Grub: ====================

           GiB - GB             File                                 Fragment(s)


=============================== StdErr Messages: ===============================

cat: /tmp/BootInfo-CiO9VGea/Tmp_Log: No such file or directory
  /dev/cdrom: open failed: No medium found
  No volume groups found
mdadm: No arrays found in config file or automatically

Once things are wrong, we have to found how they went wrong. Assuming it
is an MBR system, you have to change Linux in that way (it will no
longer boot till next step), then restore Windows booting using windows
tools, and configure Windows boot using, for instance, EasyBCD. There
you tell it to offer linux grub as an extra entry.

I’ve already tried disabling the Grub boot manager, but it still came up when I booted the computer.

You are using the Windows MBR code but you have the boot flog on the extended partition where I assume the grub boot is. So to get to Windows as default boot you need to set the boot flag to a Windows boot partition. I’m guessing sda1 (first partition) is a boot partition

.


Disk /dev/sda: 500.1 GB, 500107862016 bytes, 976773168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk label type: dos
Disk identifier: 0x68265a5d
|Device Boot|Start
|---|
|End
|Blocks
|Id
|System
|
|/dev/sda1
|2048
|206847
|102400
|7
|HPFS/NTFS/exFAT
|
|/dev/sda2
|206848
|452483071
|226138112
|7
|HPFS/NTFS/exFAT
|
|/dev/sda3
|452483072
|871913471
|209715200
|7
|HPFS/NTFS/exFAT
|
|/dev/sda4   *
|871913472
|976773119
|52429824
|f
|W95 Ext'd (LBA)
|
|/dev/sda5
|871915520
|876136447
|2110464
|82
|Linux swap / Solaris
|
|/dev/sda6
|876138496
|976752639
|50307072
|83
|Linux
|



You have three Windows partitions there.

Currently, partition 4 (the extended partition) is set as active. And it looks as if you are booting partition 1 to get to Windows 8.

One of the other Windows partitions, probably partition 3 (or “/dev/sda3”) will get you to Windows 7 and the old boot manager prompt.

I should have asked for this before. Can you provide the output from:


df

Here’s my plan:

  1. We mount a Windows partition (if not already mounted);
  2. We copy the partition boot sector (that boots grub) into a file in the Windows partition;
  3. We change the active partition, so that you get back to booting Windows the same way as before
  4. We add an entry to the Windows boot manager to boot opensuse.

I’m looking for that “df” output to see if you have a Windows partition already mounted.

It will also be useful to know how you installed opensuse. Did you install from the install DVD, or from live media? The reason for wanting to know this, is that when following the plan I suggest, you may lose the ability to boot opensuse. So I need to know if you can at least boot from the install media that you used.

Waiting for your response.

I have one more question for you.

On your opensuse system, there is very likely a file: “/boot/backup_mbr”.

If that file exists, can you provide the output from:


/sbin/fdisk -l   /boot/backup_mbr

You can probably run that command as an ordinary user (no need to be root).

I think that will tell us what was the active partition before you installed opensuse, and knowing that will help.

I should have asked for this before. Can you provide the output from:

df
Filesystem     1K-blocks      Used Available Use% Mounted on
/dev/sda6       49386288   4257144  44056312   9% /
devtmpfs         4022364        16   4022348   1% /dev
tmpfs            4035272        84   4035188   1% /dev/shm
tmpfs            4035272      5784   4029488   1% /run
tmpfs            4035272         0   4035272   0% /sys/fs/cgroup
tmpfs            4035272      5784   4029488   1% /var/run
tmpfs            4035272      5784   4029488   1% /var/lock
/dev/sda2      226138108 107347364 118790744  48% /mnt/8EBA4A4FBA4A344D
/dev/sda3      209715196  19596188 190119008  10% /mnt/DABE4BB5BE4B8949

It will also be useful to know how you installed opensuse. Did you install from the install DVD, or from live media? The reason for wanting to know this, is that when following the plan I suggest, you may lose the ability to boot opensuse. So I need to know if you can at least boot from the install media that you used.

I installed from a cd but I could use a flash drive if that’s needed.

If that file exists, can you provide the output from:

/sbin/fdisk -l   /boot/backup_mbr
Disk /boot/backup_mbr: 0 MB, 512 bytes, 1 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x68265a5d

           Device Boot      Start         End      Blocks   Id  System
/boot/backup_mbr1            2048      206847      102400    7  HPFS/NTFS/exFAT
/boot/backup_mbr2          206848   452483071   226138112    7  HPFS/NTFS/exFAT
/boot/backup_mbr3       452483072   871913471   209715200    7  HPFS/NTFS/exFAT
/boot/backup_mbr4   *   871913472   976773119    52429824    f  W95 Ext'd (LBA)

How would I do that?

Using a CD is fine.

We need to make either partition 2 or partition 3 the active partition. I’m not sure which will be better. If we get it wrong, you might need to boot that install CD and run “fdisk” to switch to using partition 3.

Step 1: This will copy the boot sector that grub uses into your Windows partition (partition 2).

According to your “df” output, you have that partition mounted as “/mnt/8EBA4A4FBA4A344D”.

As root, do the following:


# cd /mnt/8EBA4A4FBA4A344D
# dd if=/dev/sda4  of=bootsect.lnx count=1

That should create a file named “bootsect.lnx”, which will be visible in Windows, probably as “C:\bootsect.lnx” but you might have to try different drive letters.

I have assumed that you do not already have a file of that name. If you do, then pick a different name to use in the above. We will eventually use that file to enable booting opensuse from the Windows boot manager.

Step 2: We will set partition 2 to be active.

In the following, I’ll try to guide you in using “fdisk”. If you are already familiar with that, then I am probably giving too much detail. I’ll add comments " ### my comments" on several lines. Ignore that (including spaces before the comments).


# fdisk /dev/sda
  #### there will be a bunch of output describing the disk.
p  #### that should print out the partition table, similar to what you have provided earlier.
a  #### this toggles active flag.  You will be prompted for a partition number
4  #### this says to turn off the active flag for partition 4
a  #### another active flag toggle.  Again, you will be prompted for a partition number
2  #### this says to turn on the active flag for partition 2
p  #### print the partition table.  This should be the same as above, except that the "*" should be on "/dev/sda2"
w  #### save the results and quit.  If you made a mistake, then use "q" instead of "w".

After you are done with this, try rebooting. Hopefully, it will boot into Windows and the old boot manager. If not, then you will have to boot from that cd, run “fdisk” and change the active flag to partition 3, then try again. Or try partition 1. Changing it back to partition 4 will get you back to where you boot opensuse.

I can now boot to Windows 8.1 and 7 but I can’t find that file. Is there another way for me to get that information?

The file can be created again, if needed.

Have you looked in all drives available to Windows?


DIR C:\ /a
DIR D:\ /a
DIR E:\ /a

If you go into Disk Manager on Windows, you should be able to see which partition is assigned which drive letter.

If partition 2 is not currently assigned a drive letter, then you can assign it one. You can unassign that later.

On 2014-04-26 23:46, Burklow wrote:
>
> gogalthorp;2639431 Wrote:
>> You are using the Windows MBR code but you have the boot flog on the
>> extended partition where I assume the grub boot is. So to get to Windows
>> as default boot you need to set the boot flag to a Windows boot
>> partition. I’m guessing sda1 (first partition) is a boot partition
>> .
>
> How would I do that?

Well, in Linux you would do:

su -
fdisk /dev/sda

and then something like this, changing the numbers as appropriate for
your case:


Telcontar:~ # fdisk /dev/sda
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): p

Disk /dev/sda: 500.1 GB, 500107862016 bytes, 976773168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x0004c265

Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      206847      102400    7  HPFS/NTFS/exFAT
/dev/sda2          206848   122882047    61337600    7  HPFS/NTFS/exFAT
/dev/sda3       122882048   976773119   426945536   83  Linux

Command (m for help):
Command (m for help): m
Command action
a   toggle a bootable flag
b   edit bsd disklabel
c   toggle the dos compatibility flag
d   delete a partition
g   create a new empty GPT partition table
G   create an IRIX (SGI) partition table
l   list known partition types
m   print this menu
n   add a new partition
o   create a new empty DOS partition table
p   print the partition table
q   quit without saving changes
s   create a new empty Sun disklabel
t   change a partition's system id
u   change display/entry units
v   verify the partition table
w   write table to disk and exit
x   extra functionality (experts only)

Command (m for help): a
Partition number (1-3, default 3): 1

Command (m for help): a
Partition number (1-3, default 3): 3

Command (m for help): p

Disk /dev/sda: 500.1 GB, 500107862016 bytes, 976773168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x0004c265

Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048      206847      102400    7  HPFS/NTFS/exFAT
/dev/sda2          206848   122882047    61337600    7  HPFS/NTFS/exFAT
/dev/sda3   *   122882048   976773119   426945536   83  Linux

Command (m for help): w

The ‘w’ writes the changes. Before that, use ‘q’ if you want to exit
without changes (only ‘w’ writes them).

Notice that what I do is activate the flag on one partition, and remove
it on another. Fdisk could happily set the flags on all partitions,
which is an undefined mistake. It would boot from the first one found.
That’s the reason of the last ‘p’ command, to see visually that there is
only one mark (the ‘*’).

But nrickert is giving you more detailed info, follow his advice.


Cheers / Saludos,

Carlos E. R.
(from 13.1 x86_64 “Bottle” at Telcontar)

And what exactly did you do? There several different advices in this thread.

It appears the problem is caused by changing active partition from its original value during installation of Windows 8 (or may be it must be System Partition). With all other environment being equal, changing active partition boots straight into Windows 8; setting active partition to original System Partition displays standard Windows bootmanager system selection dialog. In all cases I chainloaded from grub2.

Not sure what can be done here from the Linux side …

In case you are still unable to find that file – you were probably in the wrong directory when you created it.

Boot from your install CD/DVD. If it is the installation DVD, then boot into rescue mode. If it is live media (live Gnome or live KDE), then open a terminal, and use the “su” command to become root.


# mount /dev/sda2 /mnt
# cd /mnt
# dd if=/dev/sda4  of=bootsect.lnx count=1
# ls -l bootsect.lnx   #### just to make sure it is there.

Then boot to Windows again, and see if you can find the file. That’s what we need to add to Windows boot manager to complete the job (allow you to access opensuse from the Windows boot manager).

Word of caution. When using partition boot sector it becomes invalid after grub2 update and must be copied again. Otherwise openSUSE will become unbootable (via Windows boot menu).

I tested installation of grub2 in MBR while keeping Windows system partition as active and it works normally - Windows menu entry in grub2 brings up Windows bootmanager dialog.