Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

I installed the beta version of Windows 8 and re-installed GRUB. When I boot my computer and select Windows 7, I get the new Windows 8 booting screen asking to boot between either Windows 7 or 8.

If I choose Windows 7, my computer then restarts and I have to select Windows 7 again in order to boot into 7. But if I choose Windows 8 it boots right up. I understand I can choose which OS to boot by default, but I want my GRUB options to be the only way to choose between OS's. So my question is, how can I set this up so that when I click on Windows 7, I go there, and when I select Windows 8, I boot 8?

share|improve this question

2 Answers 2

Simple answer is: You can't. Windows 8 uses a new type of bootloader, starting the operating system almost completely before asking you to select which to boot. It then reboots into the correct OS. In this case, if you select Windows 7 it boots into the Windows 7 bootloader and then Windows 7. If you select Windows 8, it reboots into the Windows 8 partition with the flag to skip the Windows 8 bootloader.

Weird answer: You may be able to uninstall or disable the Windows 7 and Windows 8 bootloaders, allowing GRUB to take sole control. This is not really an Ubuntu-related task though. Try asking someone at M$?

share|improve this answer

I assume you have everything installed (Windows 7/8 and Linux) and Windows have separate partition for bootloader.

You need to boot into Windows 7, open elevated Command Prompt (in menu start instead of left-clicking, right click and select 'run as administrator') and issue:

bcdboot c:\Windows /s c:

Then you can reboot into Linux and assuming you have os-prober just issue:

grub2-mkconfig -o /boot/grub/grub.cfg

You'll find entries as:

  • Ubuntu
  • Advanced options for Ubuntu
  • Windows 8 (on /dev/sda1)
  • Windows 7 (on /dev/sda2)

Selecting Windows 8 allows to 'select' Windows 7 as previously. Possibly running bcdboot in Windows 8 would fix the problem but I haven't tried it - an easy and safe workaround is just to change timeout to 5s.

Unfortunately I don't use Ubuntu so the description is more what I've done it on Gentoo so grub2-mkconfig may be differently named etc.

PS. I don't think that matters but I've done it before I managed to do it by bcdboot. I get the bootsect.exe from Windows 7 install disk (it's in boot directory) and run:

bootsect.exe /nt60 C:

Before you try any of the commands above read the documentation (I've just try it today and it worked - I'm not an expert).

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.