Booting from Windows 7 bootloader -- Novice needs help!!

Hi,
I’m in an Information Technology program at college and we recently installed openSUSE on our laptops to dual boot with Windows 7. I use Windows for everything except my Operating Systems class and was extremely annoyed to find that booting using openSUSE meant I was unable to hibernate my Windows sessions (something I rely on). I marked my C: partition as “Active” to try and remedy this on the advice of some forum posts I read. That fixed my hibernating issue, but I am now unable to boot into openSUSE, something the forum posts forgot to mention :confused:
I have no idea what I’m doing, by the way, I just followed on-screen instructions to install openSUSE and partition everything. So I need really simple and easy to follow instructions on how to dual-boot Windows and openSUSE using the windows bootloader. I really don’t want to screw up my laptop.
~Thanks!

It is a mater of understanding the boot sequence.

You may want to put the grub MBR code into the MBR and let OpenSUSE control the boot. This ignores any boot flags. My guess is that you originally put the grub code into the OpenSUSE /boot or / partition and used the generic boot code which uses the boot flag. Moving the boot flag to Windows means that Window boots directly. In theory you should be able to set up multi-boot in Windows. But maybe a Windows form might have more info on that. Most people put grub into the MBR and let the Linux code control the boot.

You should have no trouble mutlibooting using Grub.

extremely annoyed to find that booting using openSUSE meant I was unable to hibernate my Windows sessions
You shouldn’t hibernate windows and then boot linux whatever boot manager you use.

If you really can’t live with grub
Boot Multiboot openSUSE Windows (2000, XP, Vista - any mix) with Windows bootloader.

On 09/14/2011 10:06 AM, gogalthorp wrote:
>
> It is a mater of understanding the boot sequence.
>
> You may want to put the grub MBR code into the MBR and let OpenSUSE
> control the boot. This ignores any boot flags. My guess is that you
> originally put the grub code into the OpenSUSE /boot or / partition and
> used the generic boot code which uses the boot flag. Moving the boot
> flag to Windows means that Window boots directly. In theory you should
> be able to set up multi-boot in Windows. But maybe a Windows form might
> have more info on that. Most people put grub into the MBR and let the
> Linux code control the boot.

@janikile: I never change the MBR. I leave it untouched, and I recommend that
you do the same. You have much more flexibility if GRUB is not in the MBR.

As you have now learned, the standard code in the MBR finds the active
partition, and gets the secondary boot loader from that location. When you
switched the active flag back to the Windows 7 partition, you took GRUB
completely out of the picture.

To recover, you need to boot one of the Live CDs, open a terminal, switch to
root, and run ‘fdisk /dev/sda’ and change the active partition back to the
original setting. That is all it takes to restore GRUB.

It is possible to hibernate Windows, boot into openSUSE, shut down, and restore
Windows; however, YOU CANNOT TOUCH THE WINDOWS DISKS IN THE MEANTIME. If you
are mounting any of the NTFS partitions, it will not work. Except for RAM,
Windows must find the machine exactly as it left it. The disk contents must not
change and the same equipment must be available. If you need to transfer files
from Windows to Linux and vice versa, use a USB drive and make sure it is
removed before hibernating.

I managed to restore GRUB with the CD and everything is as it was, and I think I will leave it that way. I probably should have been more clear, my issue was not that I could not hibernate Windows and then boot into openSUSE, it was that as long as GRUB was handling the initial boot I could not hibernate Windows at all, the screen just goes blank and returns to the logon screen when I shake the mouse. I will live with this though since it’s been quite a headache getting openSUSE working again. Thank you all for the advice, it was much appreciated!

Here’s what I do.

While running linux, I find the active partition. In my case, that is “/dev/sda4”

I then (as root) do:


dd if=/dev/sda4 of=/windows/C/bootsect.lnx count=1

Then, in WIndows, I use BCDEDIT to set it up to boot linux (i.e. grub) using the windows boot manager. If you google for “bcdedit linux” (without the quotes) you will find some good references. One of them that looks simple enough is
Vista boots Linux? - PC Perspective Forums
That says it is for vista, but it works the same in Windows 7.

I did find that I had to change the active partition to Windows, before BCDEDIT would work.

Once you have this setup, then if Windows is the active partition, when it boots it will prompt you to select Windows or linux, with Windows as default after a 30 second timeout.

For persons wanting to use the Windows 7 or Vista boot manager there is a Windows program called EasyBCD which makes it a cinch to configure Linux drives into the Windows boot manager.