2

I installed a dual boot Windows 7/8 on my laptop and now I also added a Ubuntu 14.04.1.

To install Ubuntu I did an efi partition on sda1, a swap partition (sda6) and root (sda7) After the installation Ubuntu was launch by default so I installed GRUB then Boot-Repair, launch the recommended option but I got the following message:

GPT detected. You need to create a BIOS-boot partition .... or try to active the seperate efi boot option ....

So I tried this advanced option and repair again but after all the process I got the following message:

A error occurred during repair, write on paper the following URL ....

After rebooting no one of the both windows partitions is visible on GRUB menu.

The link of the bootinfo report: http://paste.ubuntu.com/8291284/

I also tried to manually add a menu entry in the /etc/grub.d/40_custom but when I did something like:

menuentry 'Windows 7' {
    insmod part_gpt
    insmod ntfs
    set root='hd0,gpt4'
    chainloader +1
}

I get a new entry on GRUB but an error if I select it : "Invalid efi file path"

Can't find how to make it works, so if you have any suggestion please let me know

αғsнιη
  • 35,660
  • How were you originally booting? Was this a machine with Win 8 preinstalled? You have a gpt disk, without a grub-bios partition, with an EFI partition, no MBR, but you have no Windows bootloaders in the EFI and no nvram selections for Windows. Are you trying to set up an UEFI boot or legacy boot? – ubfan1 Sep 08 '14 at 17:13

1 Answers1

1

Looks like you are successfully booting with UEFI, at least the error message expecting a UEFI binary suggests that.

The only thing you need to do now is either:

  • properly configure custom GRUB entries (if you have EFI folders in the root of your Windows partitions you 2 should work if the proper values are supplied)
  • or install EFI loaders for each Windows installation to the ESP (see bcdboot command from my answer before, this should copy the .efi binaries to the ESP and generate a BCD configuration even if you booted with legacy booting, this can be difficult though as you have to mount the ESP in Windows) and rerun update-grub in Ubuntu. You should also be able to boot at least Windows 8 directly from the firmware settings when you run bcdboot again from a UEFI booted Windows (this will additionally create NVRAM entries).

Note that the Windows 7 version of bcdboot doesn't support the /f switch.


Simply speaking

If you booted Windows 8, mounted your EFI System Partition (short ESP, seems to be sda1) to E: and your Windows 7 partition to D:, then run:

bcdboot C:\Windows /s E: /f uefi
bcdboot D:\Windows /s E: /f uefi

Heads up though, both commands will write to the same location (\EFI\Microsoft, I guess) and may overwrite each other, so you may want to make copies (e.g. \EFI\Microsoft7 & \EFI\Microsoft8). Then boot Ubuntu and run sudo update-grub.

LiveWireBT
  • 28,763