Tell me more ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

I installed Windows 8 and after that I installed Ubuntu. This are my partition now:

  • 70Gb --> Windows 8
  • 50Gb --> Ubuntu 12.10
  • 100Mb --> UEFI
  • 300Mb --> Recovery

I installed the GRUB on /dev/sda. Then, after GRUB not showing up and booting directly into Windows 8, I turned the laptop off and booted again into Ubuntu LiveCD and ran the Boot-repair utility, it give me this information but it didn't solved the problem.

My Laptop still boots directly into Windows 8, without GRUB or Ubuntu even showing up.

share|improve this question
... and uefi is turned off? – Rinzwind Jan 12 at 21:12

2 Answers

Chances are that one of two things is happening:

  • Ubuntu didn't completely install its boot loader, in which case you need to use the efibootmgr program from a Linux emergency disc to finish the job. Overall, this seems a bit unlikely, but it's the possibility that I hope is correct.
  • Your firmware is one of the many broken designs that violates the EFI spec and boots Windows despite the fact that another boot loader is correctly configured as the default.

There are several possible solutions, depending on which of these things is happening and your personal preferences for how to proceed. These include:

  • Boot a Linux emergency disc in EFI mode and type sudo efibootmgr -c -p 2 -d /dev/sda -l "\EFI\ubuntu\grubx64.efi" -L "Ubuntu" to re-register Ubuntu's boot loader with the ESP. You may need to change /dev/sda if your method of booting changes what is currently /dev/sda to something else. Depending on the disc you use, you may also need to install efibootmgr and perhaps do an insmod efivars before using efibootmgr. This method will work only if my first hypothesis about what is wrong is correct.
  • Run the Boot Repair tool and tell it to fix things. This has a high probability of working and is easy to do, but it will likely do so in a way that could create further problems down the road. If it doesn't work, it will become harder to disentangle everything.
  • Mount the EFI System Partition (ESP; your /dev/sda2), move the EFI/Microsoft/Boot/bootmgfw.efi file down one level (so that it's EFI/Microsoft/bootmgfw.efi), and then copy EFI/ubuntu/grubx64.efi to EFI/Microsofot/Boot/bootmgfw.efi. This is the key thing that Boot Repair would do, but done in a slightly different way. You'll then need to modify your /boot/grub/grub.cfg file before you'll be able to boot Windows. I'm not sure if the update-grub script will pick up the change automatically. It might, but if not, you'll need to create a new Windows entry in /etc/grub.d/40_custom for the new location of bootmgfw.efi.
  • Download and install my rEFInd program. There are several ways to do this, each with its own quirks and caveats. If you can get your non-booting installation to boot, say by using Super GRUB 2 Disk, installing the Debian package is likely (but not certain) to succeed. Depending on how it's installed, rEFInd may be able to boot Linux directly, without the use of GRUB.
share|improve this answer
In the log, we can see that efibootmgr has been used successfully by grub-efi/Boot-Repair, so it is likely to be a firmware that violates the UEFI specs. – LovinBuntu Jan 14 at 4:16

It is likely to be a firmware that violates the UEFI specs.

To workaround this, run Boot-Repair --> Advanced options --> tick Backup and rename EFI files --> Apply. Indicate the new URL that will appear if any doubt.

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.