43

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/

6
  • shimx64.efi worked for me, though in my case Ubuntu Gnome didn't boot after install, and had to select the file by creating a new boot option in BIOS. Apr 4, 2017 at 9:10
  • There are a ton of answers about Windows here, are you trying to boot into Linux or Windows? Jun 27, 2017 at 18:28
  • a lot of bad answers needlessly complex because of windows concerns just do the renaming of grub's efi sudo cp /boot/efi/EFI/ubuntu/grubx64.efi /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi from @Vitor Abella's answer Jun 27, 2017 at 18:43
  • Boot Ubuntu from boot key (may be F9),open folder>file system>boot>efi>EFI>Ubuntu>grubx64.efi &copy file to boot/efi/EFI/Microsoft/Boot directory &in the same dir you can see Win boot file named bootmgfw.efi, right click and take permissions and allow write and read to All users & groups & cut/move the bootmgfw.efi to /boot/efi/EFI/Microsoft/ directory. After that, Go to Applications->System Tools->Administration->Grub Customizer then select Windows Boot Manager ->Right Click or General Settings-> (You'll get Entry editor) and change windows load path to /boot/efi/EFI/Microsoft/bootmgfw.efi
    – JWC May
    Jun 18, 2021 at 12:44

19 Answers 19

36

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.

5
  • 11
    Thanks, it helped, however I could not boot into Windows. At startup, it starts GRUB and in GRUB, the 'Windows Boot Manager' option goes to GRUB menu again (expectable as this links to the same .efi file). It looked like that issue though I was not lucky with boot-repair. I solved it by going to Ubuntu, in /etc/grub.d/ filling the file 40_custom by copying the Windows Boot entry I had in my ubuntu paste and editing the url of .efi file to point to the backup of bootmgfw.efi. So the menuentry contains chainloader /EFI/Microsoft/bootmgfw.efi
    – Vince
    Jan 8, 2015 at 0:23
  • 2
    that menuentry doesn't work for me
    – Pierre
    May 14, 2016 at 13:35
  • @Pierre May: Maybe using the following menu entry will work for you: menuentry 'Real Windows' { set root=(hd0,gpt2) chainloader /EFI/Microsoft/bootmgfw.efi } (this assume that your efi partition is on the first hard drive, on sda2. To make sure, you can type "c" when you are in the grub and type "ls" to see the available partitions.
    – tobiasBora
    Dec 14, 2017 at 21:25
  • sudo efibootmgr -v was not help me. But your path is correct to me. Apr 29, 2020 at 2:38
  • 1
    The problem is what Vince described, it's impossible to boot into Windows this way, so the windows bootloader is necessary. I think best solution right now is to just F9 for HP laptops. The second best answer is michael_za's, but my BIOS doesn't provide the option to create a customized boot option
    – Stardust
    Dec 3, 2021 at 21:32
22

I faced the same problem on HP ProBook 4340s with original Windows 8 already overwritten by new Kubuntu 15.04 (I prefer no dual boot). Among other tries, I also tried Boot-Repair (both from HD after its installation and via boot-repair-disk), but that exercise was most probably unnecessary.

What made the trick was the following changes in the BIOS Setup (after computer start push F10 - go to System Configuration - open Boot Options):

  1. Check Customized Boot

  2. Check off SecureBoot

  3. Boot Mode: choose UEFI Hybrid or UEFI Native (I chose UEFI Native)

  4. UEFI Boot Order: put Customized Boot to the top

  5. Define Customized Boot Option: choose Add + put the setting: \EFI\ubuntu\grubx64.efi

We found the correct path string when opening the GRUB via the Boot from EFI File option in the Fast Boot Options (F9). In the beginning, the options list contained:

  • OS boot Manager
  • Boot from EFI File

After adding the Customized Boot option, it was added to the list:

  • Customized Boot
  • OS boot Manager
  • Boot from EFI File
8
  • Did exactly that here on a hp zbook 15, no luck
    – cmbarbu
    Dec 23, 2015 at 6:24
  • 1
    If you use a uefi system and install UBUNTU 16.10 after windows 10 than this answer is the correct one
    – leoredi
    Nov 16, 2016 at 12:17
  • 1
    thanks, I haded to do this Define Customized Boot Option: choose Add + put the setting: \EFI\ubuntu\grubx64.efi
    – m3asmi
    Nov 27, 2019 at 9:57
  • Worked for me also, kubuntu 18.04.4 LTS on HP EliteBook 840
    – TimSparrow
    Jul 1, 2020 at 14:28
  • @m3asmi is there a trick to entering a backslash. My HP Zboook G2 won't let me enter a backslish just forward.
    – user1372692
    Jul 22, 2021 at 23:21
8

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.

4
  • Thank you very much! I have not attempted any of your options yet, but will this weekend.
    – maddentim
    Jan 18, 2013 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, 2013 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, 2013 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, 2013 at 1:43
7

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.

6

I spent a day for the same problem and I finally solved it. The following is the exact solution. The full article for solving the problem is here Which is written by Rod Smith.

Useful information

In order to boot into GPT partition table with efi boot loaders. efi files are created by operating systems in the time of installation which must be provided to computer's UEFI bios in order to give it the ability to boot into their coresponding operating systems.

For holding the efi files we need to have one EFI partition. This is usually a partition less than 200MB with fat32 format with the label of EFI system. It includes .efi files and their dependencies (In the shape of .dll or .efi) needed for booting into any of the bootable partitions (usually operating systems). In my computer this partition has structure shown by the following schema:

\EFI
   |_Boot
     |_fw
   |_Microsoft
     |_Boot
     |_Recovery
   |_Ubuntu
     |_fw

Normally .efi files can have any name but it seems that some computers are looking for specific names. So I mention the standard names too.

  1. Boot Folder: Is is recognized as the default boot option and if NVRAM is erased for a reason. This will be used by default. The efi boot loader's name is "bootx64.efi". When you want to choose a default efi boot loader copy your efi file and all files around it to the boot folder and rename the efi file of your source into "bootx64.efi".

  2. Microsoft Folder: It holds windows's efi boot files. There are several efi files but the main one is "efibootmgfw.efi". I am sure that this is used by windows to boot.

  3. Ubuntu Folder: It holds Ubuntu or Mint's efi file. There are several .efi files but the main one is grubx64.efi

what to do?

There are already some boot options that are installed in the time of operating system installation. However, they can be gone from bios's boot options for different reasons such as removing and reinstalling an HDD or installing a new operating system or even a new motherboard battery. There are two solutions to recover the boot options.

  1. (Not recommended) As it is described in some answers we can replace a working boot option with the one that is not working. But the problem remains the other way.

  2. Register the missing efi boot loader file manually.

How to do?

  1. Boot from Linux bootable flash (I use Linux Mint's bootable flash). This must be an EFI usb. (GPT usb that can be created by programs like rufus)

  2. Mount the EFI partition, your distro may do this automatically. Skip this step if /boot is available and shows a structure similar to the one above. Modern Ubuntu's should do this for you.

    1. Find the address of your EFI partition. This can be done by using parted command or Disks program. It is usually the first or second partition in the bootable disk.(/dev/sda1 or /dev/sda2) This partition is usually between 100MB-200MB with FAT32 and partition type of EFI System.

    2. Mount the EFI partition. You can use df command to check if the partition is mounted before.

      df  /boot/efi
      

      If the partition is not mounted before(Is not shown in the previous command) Mount the partition by the use of mount command:

      mount  /dev/sda1  /boot/efi
      
  3. Now if you browse /boot/efi you will see the file structure similar to that of mine explained above. Control if there you can find the folder of your lost operating system. In my case computer's bios only was able to see the windows boot option, however I also had linux Mint's Grub boot option.

    • (Not recommended) My windows boot option was working so First for testing purposes I made a backup of Microsoft folder which holds a bunch of files among with the boot efi file of windows. (bootmgfw.efi) Then I renamed the ubuntu folder into Microsoft, next I renamed the grubx64.efi to bootmgfw.efi. After restart, Instead of booting into windows grub menu is loaded, however, this time booting to windows was only possible with grub. And direct boot to windows was not possible.

      sudo cp /boot/efi/EFI/ubuntu/grubx64.efi /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi
      
    • (Recommended way) Just write the address of the efi file that you want its related operating system to be seen in the boot options of bios. In my case Linux Mint was missing from the computer BIOS's boot list. The address of its efi file was /efi/ubuntu/grubx64.efi relative to EFI partition's root. Then I registered it into NVRAM by using efibootmgr command.

      efibootmgr -c -d /dev/sda -p 1 -l \\efi\\ubuntu\\grubx64.efi -L nameForBootOption
      

      in p 1 part of the command the 1 defines the partition number of efi partition in the given disk. nameForBootOption is a custom name given to the boot option

*Take care to write the correct address. When You mount the partition in linux. It mounts the partition to some folder under the root, that extend the real address into something like /media/mint/CC1F-9708/EFI/ubuntu however we only need to give /EFI/ubuntu part.

*Disks program is wonderful graphical tool that is on linux Mint's bootable flash by default. It can be used to check and find EFI partition and also can be used for mounting the EFI partition without using any mount or parted command. You only need to search for it in menu, Preferences, Disks.

2
  • 1
    Went the not-recommended way. Worked perfectly. Jun 27, 2017 at 18:41
  • 1
    I could not get the recommended way to work. Stupid bios would add OS Boot manager to top during boot. Had to go the non recommended route but worked like a charm
    – Hemil
    May 19, 2021 at 5:49
3

On my HP laptop I did as follows, step by step:

1 - Boot into ubuntu with F9

2 - Check where Windows boot loader is located

sudo efibootmgr -v

In my case /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi

3 - Backup .efi file:

sudo cp /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi /boot/efi/EFI/Microsoft/bootmgfw.efi

4 - Replace original .efi file by the ubuntu one (the trick):

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

5 - Add windows 10 menuentry on grub. Open /etc/grub.d/40_custom and add this menu entry in the end of file:

menuentry "Windows 10 click here!" {
    search --set=root --file /EFI/Microsoft/bootmgfw.efi
    chainloader /EFI/Microsoft/bootmgfw.efi
}

6 - Save 40_custom and:

sudo update-grub

7 - On bios Disable Secure Boot (I'm not sure if it is needed)

8 - If everything went right, it will boot on ubuntu by default and windows 10 will be another option on grub.

It was easier than I thought.

4
  • sudo cp /boot/efi/EFI/ubuntu/grubx64.efi /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi worked perfectly. Jun 27, 2017 at 18:43
  • @EvanCarroll , do you think I should improve my answer? It is really the steps I do. Jun 27, 2017 at 21:05
  • Well, I'm not sure this answer is needed at all to be honest. It's a lot of words but your method there, is the same thing Tekin has in the not recommended section. But, for those of Linux-only users, that method is great for it's simplicity. Jun 27, 2017 at 21:22
  • Ok. I have no words about this kind of solution, only that It worked perfectly for me and for finally dual-booting. Thank you so much
    – Seb0927
    Feb 20 at 2:22
1

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).
3
  • 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, 2013 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, 2013 at 7:34
  • done. paste.ubuntu.com/1562554
    – maddentim
    Jan 23, 2013 at 12:28
1

I faced the similar problem after installing Cent-OS 7 over windows 10. here is the below process i followed.

  • initial OS was windows 10
  • installed cent-os 7 using uefi usb created by rufus

problem : windows 10 was loading and cent OS boot menu was not even getting displayed.

  1. How i solved:
  2. went to Bios
  3. enabled legacy boot ( just an extra step for future precautions)
  4. go to Boot options
  5. click OS boot manager
  6. Move CentOS UEFI above windows : press f10 to save
  7. click OD bootmanager again and verify it.
  8. press f10 to save and exit

Now your system will boot in centos UEFI

since we enabled legacy boot we can choose esc key to go to bios or other boot options

1

I found a way to get my HP Pavilion g7-2269wm (UEFI) to boot rEFInd (GRUB may also be possible) without replacing bootmgfw.efi with rEFInd or GRUB

I installed rEFInd and added rEFInd to the boot managers list using sudo efibootmgr -c -d /dev/sda -p 2 -L "rEFInd" -l "\EFI\refind\shimx64.efi"

Rebooted using F9 to select rEFInd and then selected Ubuntu.

Then renamed bootmgfw.efi to bootmgfwms.efi using

sudo mv /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi /boot/efi/EFI/Microsoft/Boot/bootmgfwms.efi

Then I rebooted and it rebooted into rEFInd without having to use F9.The Windows 10 entry was now missing so I selected Ubuntu.

Then to get back the Windows 10 entry I ran

sudo mv /boot/efi/EFI/Microsoft/Boot/bootmgfwms.efi /boot/EFI/EFI/Microsoft/Boot/bootmgfw.efi

Then I rebooted and rEFInd comes without pressing F9 and Windows 10 appears as a entry.

0
1

It's a further answer for mairabc's one for those who, like Vince or I, can't boot into windows. You'll need the fs_uuid:

# grub-probe --target=fs_uuid /boot/efi/EFI/Microsoft/bootmgfw.efi

and the hints_string:

# grub-probe --target=hints_string /boot/efi/EFI/Microsoft/bootmgfw.efi

Then you have to edit the file /etc/grub.d/40_custom like that:

menuentry "Microsoft Windows x86_64 UEFI-GPT" {
    insmod part_gpt
    insmod fat
    insmod search_fs_uuid
    insmod chain
    search --fs-uuid --no-floppy --set=root your_hints_string your_fs_uuid
    chainloader /EFI/Microsoft/bootmgfw.efi
}

Save it and do a

# update-grub

reboot into windows...

1

I've got a 2018 HP laptop, 14 inch with Windows 10 and Ubuntu dual boot. I used to press F9 to choose which OS I wanted and I have done for a few weeks now.

Solution:

  • Shutdown and press F10 to go into BIOS

  • Navigate to the part of BIOS which lists the boot order

  • Press enter on OS boot manager.

  • use F5 or F6 to switch Ubuntu with Windows.

  • Save and exit.

1

I solved the problem by doing a simple thing after installing ubuntu ..

got to bios set up f10 system configuration -->boot--> boot OS manager --> choose ubuntu

press f10 for restart

once you restart you will get the ubuntu grub screen .. no need to touch any efi files. I saw this solution on a hp forum site but cant get the link now

Hope it helps REgards Abir

0

This is NOT a Windows problem! The HP firmware is totally buggy as it does not use (or even support properly) the UEFI firmare variable "BootOrder". I think the only fix to this is to replace the Windows boot loader file (as some already mentioned) with your grub.efi.

0

I confirm that @Vitor Abella's steps solved the dual boot issue for my HP 2000-notebook, except that I will need to do either of the following (as was mentioned by @mairabc):

  • enable legacy boot (by default, security boot is disabled)

or

  • disable legacy boot, and enable security boot.
0

If you don't want to move around boot files, you could try changing the boot sequence manually:

Get into ubuntu manually and check the current boot sequence and their ID's using:

sudo efibootmgr -v

then change the boot sequences using -o and the ID's (in boot order left to right):

sudo efibootmgr -o 0000,3000,0001,2001,2002,2003



Example:
1. Show current boot settings

$ sudo efibootmgr -v
BootCurrent: 0001
Timeout: 2 seconds
BootOrder: 0001,3000,0000,2001,2002,2003
Boot0000* ubuntu    HD(2,GPT,c451cb3c-a684-45ac-9925-4046e57c40cb,0x145800,0x82000)/File(\EFI\ubuntu\shimx64.efi)
Boot0001* Windows Boot Manager  HD(2,GPT,c451cb3c-a684-45ac-9925-4046e57c40cb,0x145800,0x82000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}....................
Boot2001* USB Drive (UEFI)  RC
Boot2002* Internal CD/DVD ROM Drive (UEFI)  RC
Boot3000* Internal Hard Disk or Solid State Disk    RC
Boot3001* Internal Hard Disk or Solid State Disk    RC
Boot3002* Internal Hard Disk or Solid State Disk    RC
Boot3003* Internal Hard Disk or Solid State Disk    RC

2.Change boot order (we want to start ubuntu first, that will show the boot menu at startup):
Note that the first try gave an error because it couldn't find Boot2003 (floppydisk drive?), as you can see it is recreated after reboot though.

$ sudo efibootmgr -o 0000,3000,0001,2001,2002,2003
Invalid boot order entry value: 0000,3000,0001,2001,2002,2003
                                                         ^
Boot entry 2003 does not exist

$ sudo efibootmgr -o 0000,3000,0001,2001,2002
BootCurrent: 0000
Timeout: 2 seconds
BootOrder: 0000,3000,0001,2001,2002
Boot0000* ubuntu
Boot0001* Windows Boot Manager
Boot2001* USB Drive (UEFI)
Boot2002* Internal CD/DVD ROM Drive (UEFI)
Boot3000* Internal Hard Disk or Solid State Disk
Boot3001* Internal Hard Disk or Solid State Disk
Boot3002* Internal Hard Disk or Solid State Disk
Boot3003* Internal Hard Disk or Solid State Disk

3.Reboot. The boot menu should now appear. (2003 is re-added automatically):

$ sudo efibootmgr -v
BootCurrent: 0000
Timeout: 2 seconds
BootOrder: 0000,3000,0001,2001,2002,2003
Boot0000* ubuntu    HD(2,GPT,c451cb3c-a684-45ac-9925-4046e57c40cb,0x145800,0x82000)/File(\EFI\ubuntu\shimx64.efi)
Boot0001* Windows Boot Manager  HD(2,GPT,c451cb3c-a684-45ac-9925-4046e57c40cb,0x145800,0x82000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}....................
Boot2001* USB Drive (UEFI)  RC
Boot2002* Internal CD/DVD ROM Drive (UEFI)  RC
Boot3000* Internal Hard Disk or Solid State Disk    RC
Boot3001* Internal Hard Disk or Solid State Disk    RC
Boot3002* Internal Hard Disk or Solid State Disk    RC
Boot3003* Internal Hard Disk or Solid State Disk    RC
0

My solution-realized after I knew grub4dos was loading

make this entry in men.lst

title Linux
find --set-root /-name.efi
boot /-name.efi
0

After installation of Ubuntu 14.04 64 bit on a notebook HP-15-r248nf with Windows 8 upgraded to 10 installed which happened smoothly besides a problem with a dropping Wifi connection with a Realtek Wifi driver (solved using echo "options rtl8723be fwlps=N ips=N" | sudo tee /etc/modprobe.d/rtl8723be.conf), the PC still booted under Windows.

Ubuntu through grub became only available when using the ESC key during the boot phase. boot-repair did not help, it actually installed quite a number of options in grub, but grub was still not directly accessible.

In fact it was simply required to change the boot order from the default.

  • At the boot step after switching on the PC type Esc, then F10 to enter the BIOS setup.
  • Go to the tab “System configuration”, down to “Boot options”. Press Enter. Disable “Secure boot”
  • Go down to UEFI Boot order. I put using F5/F6 the OS Boot manager on top (probably not required).
  • Select “OS boot manager” with Enter. Using F5/F6 move ubuntu to the top above Windows Boot Manager.
  • Leave the Bios setup with F10 Save/exit and confirm the changes you made.

Now you will be directed to grub where you chose the option Ubuntu marked with a star on top which will boot automatically after a short delay.

1
  • 2
    Please format this a bit. I can't even tell if it's an answer. Oct 17, 2015 at 19:55
0

Solved my EFI boot trouble like this:

The efibootmgr -o option is overwritten once you reboot, so it will not work.

However, I found out that the -n option does. So in the live usb-ubuntu run efibootmgr and find out the four digit number for ubuntu and load that number with the -n option. Then, to be able to reboot from your system make a script like this:

#!/bin/sh
/usr/bin/efibootmgr -n 0000

Replacing 0000 with the ubuntu entry. Running crontab -e will allow you to edit your cron. Add a line like this to it:

@reboot /home/"user"/"path"/efibootsj

this will execute the script efibootsj (or whatever the name is) once your computer boots up.

0

I have tried multiples options to try to fix the grub option after I have updtated to Windows 11. I have tried efibootmgr, BootRepair, coping the bootmgf2.efi and replace the windows original one. Nothing has worked to me.

But this answer solves it to me. According to it:

bcdedit /enum {fwbootmgr}

Will give you the list of entries. And I have switched the order of the second with the first entries:

bcedit /displayorder {id2} {id1} {id3} ...

Where {id1} is the big uuid obtained on the previus command.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .