Dual boot with BIOS and EFI

biosefigrubmulti-boot

I installed Ubuntu on a different PC than the one it's running on right now. The old one only had BIOS support, so it's installed that way. I recently installed Windows 7, using UEFI, because it wouldn't install if I did it using BIOS. (I was told that the new motherboard only had UEFI support, but Ubuntu still working.) However, GRUB only recognizes Ubuntu and not Windows, and the Windows bootloader did not even overwrite the MBR for GRUB – booting normally, without invoking the boot menu, boots Ubuntu.

So in short:

  • Ubuntu was installed first, using BIOS.
  • Windows was installed later, using UEFI.
  • Neither bootloader can discover the other OS. I want to add Windows to the GRUB menu.

How do I make GRUB recognize the Windows installation, or is this not possible?

Best Answer

Simple rules for installation and booting:

a) Windows can boot only BIOS way from MBR style disk

(using MBR record + partition boot record + boot manager on active partition).

b) Windows can boot only UEFI way from GPT style disk

(here boot manager is on EFI System partition).

c) Linux/GRUB can boot BIOS way from MBR style disk.

d) Linux/GRUB can boot either BIOS way or UEFI way from GPT disk

(when booting BIOS way from GPT disk Linux/GRUB uses a special separate boot partition).

Now you can make combinations when dual-booting Windows and Linux.


If you have UEFI firmware it is best to install both Linux and Windows to a GPT disk (disk can be formated/styled to GPT using Linux tools or Windows tools) and boot both systems the UEFI way.


There are even disk tools which can transform an MBR styled disk to GPT styled disk keeping current partition contents (e.g. OS installations)! Transforming GPT to MBR is not possible in general.

Only rewriting boot manager/loader to UEFI would be enough (after MBR to GPT disk transformation) to boot the OS (Windows or Linux) - no need to reinstall (eventually creating additionally EFI System and MS Reserved partitions on disk if missing after transformation).

Note:

If you want to install UEFI way - you boot installation media (DVD/USB) the UEFI way! (Obviously this can be done only if UEFI firmware present on computer.)

Related Question