Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

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/

share|improve this question

5 Answers 5

Hewlett-Packard's UEFI has been giving me heartache for a while. Your fix helped me to restart my HP laptop in GRUB again - without pressing F9 first.

I had one problem: after your fix, I could select Windows 8 in GRUB, but Windows 8 then refused to start and I was shown the GRUB menu again.

My fix:

  1. Copying the original Microsoft efi-file to /boot/efi/EFI/Microsoft/Boot/bootmgf2.efi
  2. Editing /boot/grub/grub.cfg to recognise the renamed Microsoft efi-file

Laptop now boots to GRUB, Ubuntu and Windows 8 now start OK from GRUB.

share|improve this 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 down:

    $ 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.

share|improve this answer

Well, in the end, I just decided that Windows 8 was not worth the trouble. I didn't like it much anyways and I got to recover the 100Gb in disk space that I had left for it. If Microsoft wants to make it hard to dual boot with efi, then fine, no Microsoft for me! Thanks for your attempts to help me Rod and LovinBuntu!

share|improve this answer

You are affected by this bug: https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1091477

Solution:

  1. via Gparted, create another EFI partition (FAT32, 200MB, located inside the first 100GB of the disk)
  2. move the 'boot' flag on it
  3. make Ubuntu use this new ESP (eg via Boot-Repair --> Recommended Repair).
share|improve this answer
    
Well, creating another ESP inside the first 100GB means moving the win8 partition over 200MB... Need to be careful there I think. Might break Windows booting. Maybe I should just blow it away. I don't even like it anyway. I only really need it to watch netflix! –  maddentim Jan 23 '13 at 2:09
    
Please update Boot-Repair ('boot-sav' and 'boot-repair' packages) then run the Recommended Repair , and indicate the new URL that will appear. –  LovinBuntu Jan 23 '13 at 7:34
    
done. paste.ubuntu.com/1562554 –  maddentim Jan 23 '13 at 12:28

Ordinarily, running Boot Repair backs up Microsoft's original boot loader file (bootmgfw.efi) as bootmgfw.efi.bkp and replaces the original bootmgfw.efi file with a copy of GRUB (or shim), and the Boot Repair output you posted would show this; however, I don't see such a backup file. Thus, I recommend you do one of three things:

  • Run Boot Repair again, but look for options related to backing up and replacing the Microsoft boot loader. Activate those options to continue the process. GRUB might or might not be able to launch Windows; that seems hit or miss -- and more "miss" if you leave Secure Boot active.
  • Do the job manually: From Linux, back up /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi (I recommend moving it down one level, to /boot/efi/EFI/Microsoft/bootmgfw.efi, rather than renaming it to bootmgfw.efi.bkp, since the latter is non-standard and makes tools other than Boot Repair and Ubuntu's GRUB unable to locate it). Copy /boot/efi/EFI/ubuntu/grubx64.efi in its place; or if you plan to keep Secure Boot working, copy /boot/efi/EFI/ubuntu/shimx64.efi in its place and copy grubx64.efi to /boot/efi/EFI/Microsoft/Boot using its original name. You'll then need to modify your GRUB configuration to enable it to launch the Windows boot loader in its new location or under its new name. (I've heard that GRUB can't yet launch the Windows boot loader in Secure Boot mode, though, so if you want to launch Windows from GRUB, you may need to disable Secure Boot. OTOH, I've never tried this myself, so I could be mistaken about GRUB's capabilities in this respect.)
  • Disable Secure Boot, then boot to Linux and install my rEFInd boot manager by using the Debian package. Once that's done, type sudo mvrefind.sh /boot/efi/EFI/refind /boot/efi/EFI/Microsoft/Boot. The latter command moves and renames files in a way that's analogous to the manual procedure I just described or to what Boot Repair does, but it sets up rEFInd as the default boot loader rather than GRUB. If you want to use Secure Boot, you'll be able to do so by juggling files and installing a new version of shim (Ubuntu's shim is early enough that it won't work properly with rEFInd). Installing rEFInd in this way enables you to boot without using GRUB, and the combination of the install script (executed by the package system when you install the Debian package) and the mvrefind.sh script work around the problems you're having.

For the record, the problems you're having are related to known bugs in HP's EFI implementation. Basically, the firmware is hard-coded to boot from Microsoft's boot loader and to make it difficult or impossible to boot from anything else. I strongly recommend you complain to HP about this; they won't fix such problems unless people complain.

Of the three solutions, using Boot Repair is likely to be the easiest to get working; but as I noted, the non-standard naming that Boot Repair uses can end up causing problems for other utilities in the future. The manual adjustments will require more effort to get working, but will be cleaner in the long run. Some people have reported problems getting GRUB to chainload the Windows boot loader, so either option could give you headaches on that score. rEFInd is much more likely to boot either Linux or Windows without problems, but as you can tell from the procedure, getting it working is likely to require a bit more effort than running Boot Repair again, although probably less than doing manual file-juggling. Using rEFInd in conjunction with Secure Boot requires more hoop-jumping at the moment. (See rEFInd's documentation for details.) rEFInd also presents a prettier user interface than GRUB, which might or might not be important to you.

There's risk involved in all three solutions; EFI implementations vary far too much amongst themselves, which means that either an automated or a manual procedure that works well on one computer can fail miserably on another. To protect yourself, I recommend backing up your ESP (normally /boot/efi under Linux); just pack the files up in a tarball or copy them to a backup directory. If something goes badly wrong, you can boot up with an emergency disc and restore the files. That will probably get the computer booting again.

share|improve this answer
    
Thank you very much! I have not attempted any of your options yet, but will this weekend. –  maddentim Jan 18 '13 at 22:52
    
Your rEFInd boot manager looks interesting. So, you are saying I can disable Secure Boot and still use Win8? One question I have is that when I attempted to tar /boot/efi, tar gave me errors on some of the files in the ubuntu folder. They have strange names like 'ame="App.lic'. See lines 809 to 817 in paste.ubuntu.com/1418009 This last install was actually my third attempt. I am thinking they are garbage and can be removed. What do you think? I will post back after I complete one of your steps. –  maddentim Jan 18 '13 at 23:01
    
I've seen several reports of people disabling Secure Boot and having no problems booting Windows, so that's not an issue. If you want to keep it enabled for security benefits, that's understandable, but you shouldn't worry about Windows becoming unbootable. As to your tar error, that sounds like a script had a bug and created files with strange names. I hadn't noticed those files in your output before, but it's conceivable that whatever bug created them is also responsible for your boot problems. If so, using rEFInd is likely to work around the problem, but the other solutions might fail. –  Rod Smith Jan 19 '13 at 3:50
    
rEFInd did not install successfully. I think LovinBuntu has the issue identified. /boot/EFI is read-only. Here is part of the output: mkdir: cannot create directory /boot/efi//EFI/refind': Read-only file system cp: cannot create regular file /boot/efi//EFI/refind/refind_x64.efi': No such file or directory Installing driver for ext4 (ext4_x64.efi) mkdir: cannot create directory `/boot/efi//EFI/refind': Read-only file system Copied rEFInd binary files –  maddentim Jan 23 '13 at 1:43

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.