Ubuntu – How to install Windows 8.1(10) in a pre-installed Ubuntu 14.04

bootdual-bootgrub2partitioninguefi

I am currenty using Ubuntu 14.04 and I need to install Windows 10 as dual boot. I create new ntfs partition for install Windows, But I get the following error when selecting the desired partition:
"Windows cannot be installed to this disk because it is an MBR partition table. On EFI systems Windows can only be installed to GPT disks"

sudo fdisk -l

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048   206796799   103397376    7  HPFS/NTFS/exFAT
/dev/sda2       206796800   953759743   373481472    5  Extended
/dev/sda3       953759744  1465143295   255691776    7  HPFS/NTFS/exFAT
/dev/sda5       206798848   222769151     7985152   82  Linux swap / Solaris
/dev/sda6       222771200   953759743   365494272   83  Linux

Gparted shows partitions as:

enter image description here

Best Answer

Windows ties its boot mode and partition table type together quite tightly:

  • An MBR partition table may be used if and only if the computer boots in BIOS/CSM/legacy mode.
  • A GUID Partition table (GPT) may be used if and only if the computer boots in EFI/UEFI mode.

You currently have an MBR partition table. The error message you report indicates that you booted the Windows installer in EFI mode. To install to your disk, you must boot the installation disc in BIOS mode. Your firmware is almost certainly already configured to support this (see below), but you happened to follow an EFI path when booting the Windows installer. Try again by using the computer's built-in boot manager (typically accessed by hitting a function key early in the boot process). This time, though, carefully read the options. There will probably be two options for the optical drive or USB flash drive you're using. One option will include the string "UEFI" and the other won't. Select the option that lacks this string and you should boot in BIOS/CSM/legacy mode.

If you don't see a BIOS-mode boot option, it's possible that your boot medium lacks that support. A few USB flash drives seem to be unbootable in BIOS mode on some computers, in my experience, even when they've got the right data; this seems to be something electrical about the device. Thus, you might need to try another USB flash drive. It's also possible for a USB flash drive or optical disc to be missing the necessary files or data structures, in which case you may need to prepare the disc in some other way. I don't know what that way might be for a Windows installation medium. You may need to ask on a Windows forum if you think this is the problem.

Incidentally, you are almost certainly already booting Ubuntu in BIOS mode. I say this because, when Ubuntu installs in EFI mode, it uses GPT by default, but your fdisk output and screen shot both show an MBR partition table. Furthermore, it's an MBR partition table that lacks an EFI System Partition (ESP), which is where EFI boot loaders are stored.

If you can't seem to get the Windows installer to boot in anything but EFI mode, you can convert your Ubuntu installation to boot in EFI mode, too. This process is not risk-free, so you should back up before proceeding. To try:

  1. Download the USB flash drive or CD-R image of rEFInd. Prepare a boot medium and test that it works. (You should be able to boot your existing Ubuntu installation with it.)
  2. In Ubuntu, launch gdisk on your hard disk (as in sudo gdisk /dev/sda).
  3. In gdisk, type v to verify the disk. If gdisk reports any errors, abort by typing q and fix the problem.
  4. If there are no problems, type w to save your changes (the conversion from MBR to GPT that gdisk does automatically).
  5. Reboot into an Ubuntu live CD.
  6. Use GParted to resize a partition so that you've got ~550MiB of free space. This free space can be anywhere, but it's best near the start of the disk.
  7. In the free space, create an ESP. This should be a FAT32 partition with its "boot flag" set.
  8. Install Windows.
  9. Using the rEFInd CD or USB drive, test that you can boot both Windows and Ubuntu.
  10. Using rEFInd, boot to Ubuntu.
  11. Install a Linux boot loader. Two relatively easy options are:
    • Install the rEFInd Debian package or PPA.
    • Run Boot Repair to replace the BIOS-mode GRUB you've got now with an EFI-mode GRUB.
  12. Reboot and hope it all works.
Related Question