Dual boot with Win 7 issue

I am unable to boot into Windows 7 after installing openSUSE 13.2. Grub menu does show the Windows 7 option. When selected all I get is a black screen with a flashing cursor in the top left corner. No problems booting into openSUSE.

The output from

fdisk -

linux-w9rb:/home/kenw # fdisk -l

Disk /dev/sda: 465.8 GiB, 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
Disklabel type: dos
Disk identifier: 0x00017fd1

Device Boot Start End Sectors Size Id Type
/dev/sda1 * 63 493075520 493075458 235.1G 7 HPFS/NTFS/exFAT
/dev/sda2 493083106 976771071 483687966 230.7G 5 Extended
/dev/sda5 493083108 972860451 479777344 228.8G 83 Linux
/dev/sda6 972861440 976771071 3909632 1.9G 82 Linux swap / Solaris

The menu entry for Windows 7 from grub.cfg

menuentry ‘Windows 7 (loader) (on /dev/sda1)’ --class windows --class os $menuentry_id_option ‘osprober-chain-0976FE53050AC9DA’ {
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’ 0976FE53050AC9DA
search --no-floppy --fs-uuid --set=root 0976FE53050AC9DA
chainloader +1

I ran grub2-mkconfig in terminal but no apparent changes were made and still unable to boot into Windows.
If someone would please take a look at the above output and suggest what I might need to do to be able to dual boot, I would very much appreciate it.

Best regards,

Just trying to bump it up

Is there any other information I can supply that would help in figuring out the answer to my problem?


You can edit the grub.cfg file directly by adding a ‘90_persistent’ section. Each time mkconfig resets grub it copies this section as is on the end.
You would need something like

menuentry 'Windows 7'{
insmod ntfs
set root='hdx,msdosy'
chainloader + 1

between the ‘90_persistent…’ lines/
The x in hdx is, of course, the disc no. (0 if you have only one disk) and the y in msdosy is partition no (partition 1 = msdos1 etc) of Windows boot partition.
When you’ve completed the entry just run grub2-mkconfig again.

Tell use the history where there any other Windows partition on the disk that you removed?? Is this a EFI BIOS and you installed in legacy mode?? Was it ever in EFI boot mode?

It is not uncommon for Windows these days to have a boot partition? did you remove any?

I note that the boot flag is on Windows but you boot to openSUSE ergo you put grub in MBR.

Thank you for your reply.

There were no other Windows partitions prior to installing openSUSE. At one time I did have 2 drives (before installing openSUSE). Both Windows and Zorin were installed on the same drive, drive 0. The second drive failed and was removed. At that time I did have Zorin OS installed and was able to boot between Windows and Zorin.
My BIOS does not support EFI. To my knowledge, I did not remove a boot partition. Through Disk Utility I did change the boot flag from sda5 to sda1. Original install had sda5 marked as boot. I built the machine myself so there is no recovery partition either.

Thanks for the reply,
Could it be that there is a msdos0 partition? And all I need to do would be to edit grub.cfg entry and change msdos1 to msdos0?

If you installed grub into the MBR then the boot flag is ignored. But the boot flag should not be needed to chain to Windows.

What I would do is go to Yast - Boot Loader and be sure that the flag for probe for foreign OS is checked (should be on the third tab) then accept this should set things right assuming the the Windows partition is not corrupted.

It is obvious that you did not accept a default install since there is no home partition. So hard to guess what you did. Did you install into free space or did you allow the installer to resize Windows?

I misunderstood the original post. I thought mkconfig was not finding Windows.
In grub2 although disk nos start at 0, partition nos start at 1.
My suggestion would still work though if everything is as shown in your partition list. Is that the up to date list of partitions?

Yast - Boot Loader - Probe for Foreign OS is checked.
Correct this was not a default install as the installer default settings wanted to use the entire drive. Which would have deleted my Windows partition during installation. Unless I missed something in the default installation settings? The Windows partition was not resized as part of the install. I deleted the Zorin partition and installed openSuse in that partition along with a separate swap partition.
In Yast Boot Loader the Boot from Master Boot Record is checked as well as Set active Flag in Partition Table for Boot Partition. Also, Write generic Boot Code to MBR is checked. If either of those options might make a difference.
Prior to installing openSuse, I was able to boot into Windows, so, unless something happened during installation, I would say the Windows partition is not corrupt. I am able to access Windows files in that partition.

Yes that is the most recent partition list. I am not sure I understand the change to grub.cfg. Are you suggesting I delete the menu entry for Windows 7 in my current grub.cfg and replace it with your code? Adjusting the drive and partition entry of course. Seems the difference in your code and mine is the location of the entry for chainloader +1. Yours is the next line below the set root = entry. In my .cfg it is below if / else statements.

Can you mount the Windows partition and see if the files look intact. If the partition won’t mount or the directories are not Windows directories then the partition has been modified or corrupt.

In a default install things should be ok but since you changed things… Perhaps you re formatted the partition. We don’t know. It is very possible to manually cause the changes.

Zorin I don’t know maybe it modified the booting and removing it broke things. Seems to me that some time ago someone else had problems with a drive that once had Zorin

If your Windows 7 entry shows in the grub menu when you first start up then forget everything I’ve said. I think I’ve probably just managed to confuse the whole issue.

Yes, mounting of the Windows partition within openSuse is no problem. I can view files and folders and open documents for viewing.

Sounds to me like the Windows boot sector is corrupt. Grub2’s chainloader command just loads that sector and jumps into it, like a generic MBR boot code would. If no valid code is there, something like you describe can happen, i.e. just a black screen with a blinking cursor.

I have no idea how to repair that with Windows 7 though, in XP you would boot from the installation CD, select “Repair” and type “fixboot”.
This should help though:
(I would only try the /FixBoot option at first)

Thanks for the reply and suggestion. I would agree that probably the only way to correct this issue would be to run fixboot to repair the MBR. However, once I do that, would I not loose my grub2 menu and ability to boot openSUSE?

If so, what is the suggested procedure for restoring grub so I can dual boot again?

Fixboot does not “repair the MBR”. It rewrites the PBR (Partition Boot Record), i.e. the boot (first) sector of the Windows partition.

Fixmbr would overwrite the MBR.

If so, what is the suggested procedure for restoring grub so I can dual boot again?

See here:

Or use a Supergrub2 CD.