How should I set up my dual-boot so that I can hibernate the secondary OS?

So, my previous setup was a triple-boot of Windows 7, wubi-integrated ubuntu, and then fedora on the last partition using LVM. I have tired of not being able to access my Windows files from ubuntu (wubi ubuntu is basically a virtual machine) and my fedora partition was taking up way too much space, so I deleted my not-much-used fedora. Now, I'm back in only Windows 7 (64-bit) and am going to re-create my triple boot.

I had been using the Windows bootmanager with an entry (added with EasyBCD because I'm lazy) for the GRUB on the Fedora partition. However, using the Windows bootloader as a primary one prevented me from hibernating Windows and then booting into Linux. So I have to use GRUB now.

Basically, my question (abbreviated) is:

How can I set up a main GRUB to boot into the following scheme?

  1. Ubuntu
  2. Fedora
  3. The Windows boot loader

I want to keep as much hibernate functionality with as many OSes as possible.

edit: I made a fundamental misunderstanding: GRUB (and grub2, and burg), unlike the Windows bootloader, does not automatically resume hibernated systems! Just use any OS's (doesn't need to be a seperate) GRUB, GRUB2, or BURG as the primary bootloader to hibernate/resume or hibernate/resume Windows by chainloading its bootloader. My whole question is moot.


If you want to hibernate and use a different OS while Windows is hibernated you must not put the Windows bootloader first, contrary to what @snayob says.

If the Windows bootloader is first, the very first thing it does before showing the menu is check for a hibernated OS. If a hibernated OS is found, it will boot into it automatically and will not show you a menu to choose boot options from. If you force the menu (i.e. F8), the hibernation data will be deleted.

Now if GRUB is the MBR boot menu and is configured to chainload BOOTMGR or boot into Linux, you can hibernate Windows and boot into Linux - but if you mount the NTFS partition, most likely your hibernation will be lost (detected as corrupted). Basically, if you hibernate a machine, you must not touch any volumes that were mounted on that machine (i.e. any FAT32 or NTFS partitions assigned a drive letter in the hibernated OS).

Ridiculously important note: In the event that you mount (say, in Linux) a Windows partition while Windows is hibernated and you are unlucky enough that when you're done with Linux and attempt to reboot into Windows, Windows does resume from hibernation (instead of erroring out, throwing away hibernation data and attempting a normal boot), you will most likely suffer catastrophic data loss to all Windows partitions as all filesystem-related structures will be out-of-sync between what Windows has loaded in the memory and what's actually written on the disk.

Other than that, there's no problem. Just install Windows, Ubuntu, and Fedora. Make sure the latter do not automatically mount Windows' drives on startup, ensure GRUB is the main bootloader, and you should be able to do what you want.