Ubuntu – How to get the HP laptop to boot into grub from the new efi file


I have an HP Pavilion Sleekbook 14 laptop that I have installed Ubuntu 12.10 dual boot with the original windows 8. I used boot-repair to get set up to boot into grub.

My issue is that I have not been able to get it to boot straight off the new efi file that was created. I have looked around the boot options in the bios screen, but it does not give me a choice for Ubuntu. The only way I can boot into Ubuntu is to press F9 when I power the system on and then manually navigate to the ubuntu efi file. This works but if I am not paying close attention, it will boot into windows.

After I finished running boot-repair, it told me to boot from sda2/EFI/ubuntu/shimx64.efi
I have seen some suggestions that I should move this file in place of the windows bootmgfw.efi, but I am concerned that I will break things and not be able to boot the windows 8 installation. While I already dislike win8 even more than win7, I do need it from time to time for a couple tasks…

The details of my boot-repair are here: http://paste.ubuntu.com/1418009/

Best Answer

I had this same problem with my HP Pavilion g6 when trying to dual boot Ubuntu 12.04.3 LTS and Windows 8. That is, even after "successfully" running Boot-Repair, I still had the notebook booting directly into Windows 8. If I pressed F9 before the HP symbol showed up, I was able to get into a Boot Menu (HP's menu? I don't know...) and from there, to select the "Ubuntu" entry, which in turn took me to GRUB 2 and finally to my Ubuntu installation.

Still, I wanted to be able to have the computer boot directly to Linux, without the need for any user intervention.

In the end, Rod Smith's answer above, combined with the information that I found in another forum, did the trick for me. I have Secure Boot disabled and Legacy Boot also disabled.

This is what I did:

  • I booted into my Ubuntu installation using the trick of the F9 key in the start up to be able to choose the boot loader.
  • Once in Ubuntu, I opened a terminal.
  • Using the command below, I checked where Windows boot loader was located:

    $ sudo efibootmgr -v
  • In my case, the original boot loader was in here: /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi . Please note that in your computer it might be in a different place. If so, you will need to adjust the commands below.

  • As per Rod's recommendation in his answer (the one about how to repair the boot loader manually), I made a backup of that file by moving it one level up:

    $ sudo cp /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi /boot/efi/EFI/Microsoft/bootmgfw.efi
  • Finally, I copied GRUB2's boot loader in that place, "tricking" the system into loading the boot loader I wanted instead of Windows' original boot loader.

    $ sudo cp /boot/efi/EFI/ubuntu/grubx64.efi /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi

So finally I had my dual boot working with GRUB2. In case Windows overwrites the boot loader again after an update (as it did with me), I already know the steps to get grub back to its place.

Hope this helps someone. Please let me know if there are any issues with my solution.