I have openSUSE in a dual-boot environment with Win Vista. Everything worked fine with 11.0, but after installation of 11.1 Vista does not hibernate. The screen gets dark, but after a while it turns on again so I can see that Vista did not hibernate, but just lock the session. In another forum I was given the tip to add makeactive to the Vista entry in menu.lst. This worked for the initial problem, but got me a new one: the computer booted straight into Vista without showing Grub, so I had to reinstall SUSE (after doing this Vista once again does not hibernate).
Does anyone have any ideas how to fix the hibernation problem or what changed from 11.0 to 11.1?
Vista presumably doesn’t hibernate unless it thinks it is going to be booted when the machine is powered back on.
That’s because devices need to be in some sane and known state, for the assumptions of the running system.
To undo ‘makeactive’ you just need to run Live CD, and set the boot partition where GRUB was installed active again.
You must have Generic MBR code, installed on the disk, to allow a choice of which OS to reboot. You may be able to set the Linux boot partition active, with the Windows fdisk partition tool.
Another possibility would be to install GRUB into MBR and use it as boot manager, or to try an alternative boot manager available for Free and recommended often in forums, when multi-booting is considered.
I’m not sure if the Vista multi-boot sticky considers this issue. It’d be worth a section, I’m sure.
I compared the default settings of 11.0 with 11.1, and I found the solution. In 11.0 the default is “boot from MBR”, while 11.1 installs GRUB with “boot from extended partition”. I now installed 11.1 with the “boot from MBR” option and everything is fine.
Could somebody explain to me why they changed the setting?
The grub-install script in openSUSE is not the same as the vanilla script included in the grub package - it actually just uses the /etc/grub.conf script produced by YaST which is fed to the grub shell for installation. This is because the pre-configuration with YaST which produces grub.conf is considered more reliable than the “guessing” that the vanilla script uses. The original grub-install script (which is what is in Ubuntu, Fedora, etc.) in openSUSE is /usr/sbin/grub-install.unsupported.
IME the best method of installing grub is to use the grub shell from the command line.
OK, I had the same hibernation problems on two machines, I just didn’t realize they were Suse related, I just cursed windows as I generally do.
What I did to get around it was to get ahold of Gparted.
With that, I noticed that the boot flag was set, on both machines, to some extended partition. I changed that to set the boot flag to the first windows disk/partition, which is generally /dev/sda1.
Lo and behold, windows does into sleep mode again! Apparently, it can’t go into sleep mode if the first disk patition isn’t its partition and isn’t bootable. Go figure (cursing windows again).
On one of the two machines, doing that I “lost” Grub,since it was only installed on the extended partition. I used supergrub to set that right…
I hope this help!
Reply With Quote Quick reply to this message
View Public Profile
Send a private message to lenwolf
Find all posts by lenwolf
Add lenwolf to Your Contacts #26 (permalink) Add to dich’s Reputation Report Post
Old 29-Nov-2009, 18:02
Wow…I posted my problem like 6 months ago!! LOL…well, thanks anyway for your answers. Actually I am newbie of course, so after lots of trials and lots cursing windows too…I gave up. So what I did, was installed Ubuntu and he took control of GRUB perfectly…so I have in my laptop, Ubuntu, OpenSUSE and…unfortunately windows and they all work fine now…
In linux, make a copy of the boot sector (the one used by grub), and put it in the Windows directory.
On my laptop, grub uses the extended partition, which is /dev/sda4
To make a copy of the boot record, I used (as root):
# cd /windows/C ## go to Windows directory
# dd if=/dev/sda4 of=bootsect.lnx count=1
That creates a file “bootsect.lnx” in the Windows main directory.
Now mark the Windows (Vista) partition as active, and boot into Vista.
In Vista, open an Administrator command prompt.
Then use BCDEDIT to create a boot entry in Vista.
I don’t remember all of the gory details, but if you google “BCDEDIT linux” (without the quotes), you will find some pages that describe all of the steps you need to follow in Windows.
Once this is done, you will see a boot menu whenever Windows starts. I set the name of the new entry to “linux”. Then, when booting Windows, select linux from this boot menu to get the grub boot screen.
That keeps Windows happy, so hibernate will probably work and installing SPs in Windows should work.