7

I'm experiencing something weird today. I've been searching all over the internet, but I can't seem to find anybody who has the same problem.

I have Kubuntu 21.04 and Windows 11 installed in dual-boot.

Yesterday, i did a "cumulative update" for Windows 11, then i shut the computer down.

Today, I can't get GRUB to load. I tried entering the following command in windows command line but it didn't help

bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi

Some file name seems to have been corrupted or something. Here is a picture of the error message:

Error message

Can someone tell me how to fix this?

EDIT: So I managed to get grub back by using boot-repair BUT As soon as I booted in Windows 11 again, the problem reappeared (no windows update, just plain booting).

So I boot-repaired again, and as boot-repair basically reinstalls Grub, I had to reconfigure it for iommu (gpu isolation for VMs).

So for now, I can get to Kubuntu and work with my VMs but I am kind of nervous to try Windows 11 again, as configuring iommu takes time and I have a lot of work to do.

System specs:

  • I9-10900K
  • 64GB Corsair DDR4
  • 1TB Sambung EVO+ NVME SSD
  • AMD Radeon Pro W5700
  • Msi Z490-A Pro

Output of sudo efibootmgr -v (after fix)

BootCurrent: 0003
Timeout: 0 seconds
BootOrder: 0003,0001
Boot0001* Windows Boot Manager  HD(1,GPT,41013caf-e980-464c-b214-4c6885f2bac7,0x800,0x32000)/File(\EFI\MICROSOFT\BOOT\BOOTMGFW.EFI)..BO
Boot0003* ubuntu        HD(1,GPT,41013caf-e980-464c-b214-4c6885f2bac7,0x800,0x32000)/File(\EFI\UBUNTU\SHIMX64.EFI)

PS sorry for the poor quality of my English, as it is not may native language.

Thanks

4
  • Generally better to use /EFI/ubuntu/shimx64.efi. Post this from Ubuntu live installer or your system, if you can directly boot Ubuntu from UEFI boot menu. sudo efibootmgr -v What brand/model system?
    – oldfred
    Aug 1 at 18:26
  • Tthanks for the reply. As mentioned in my edit, the issue is now partially solved (as long as I don't boot in Windows again). Here's the output of efibootmgr -v BootCurrent: 0003 Timeout: 0 seconds BootOrder: 0003,0001 Boot0001* Windows Boot Manager HD(1,GPT,41013caf-e980-464c-b214-4c6885f2bac7,0x800,0x32000)/File(\EFI\MICROSOFT\BOOT\BOOTMGFW.EFI)..BO Boot0003* ubuntu HD(1,GPT,41013caf-e980-464c-b214-4c6885f2bac7,0x800,0x32000)/File(\EFI\UBUNTU\SHIMX64.EFI) Here are the system specs I9-10900K 64GB Corsair DDR4 1TB Sambung EVO+ NVME SSD AMD Radeon Pro W5700 Msi Z490-A Pro Aug 1 at 20:03
  • Better to post in question, so you can maintain formatting. Hard to read in comments. Older Windows with updates reset some things. Is this new Windows 11 always resetting things or is it updating a lot? Both Windows & Ubuntu/grub reset to be default boot on major updates. Have you updated UEFI? You may have to redo settings if you do or if Windows does that. I have to keep a list for my Asus motherboard settings.
    – oldfred
    Aug 1 at 20:26
  • Can you not select Ubuntu from the system firmware options instead of first going through BCD? This will avoid the Windows bootloader altogether.
    – galexite
    Aug 2 at 19:45
3

I've investigated how to repair the grub boot. Finally, I found the solution with the following commands:

  1. sudo add-apt-repository -y ppa:yannubuntu/boot-repair

  2. sudo apt install -y boot-repair

  3. boot-repair

But, when I subsequently boot into Windows, and then I restart to login to Ubuntu, the same problem occurs.

I have BIOS version:

  • Windows 10 Pro Version 1909
  • Ubuntu 20.04.20 LTS
1
  • Someone suggested an edit with advice for you on how to solve the second half of the problem - boot into windows and run this command bcdedit /set {bootmgr} path \EFI\ubuntu\shimx64.efi (see askubuntu.com/questions/342365/…) If this helps you, we can approve the edit suggestion (please let me know)
    – Zanna
    Sep 30 at 3:22
1

What worked for me was to name the FAT32 partition and then from windows terminal locate the ubuntu folder and just adding grubx64.efi.gbr

Naming your FAT32 partition (If you have already done this then ignore this part) :

Open Windows terminal as admin

  1. Chose Diskpart :

    C:\WINDOWS\system32> diskpart       
    
  2. Find out the Disk number of your FAT32 partition

    DISKPART> list vol                    `
    
  3. Select Volume (Here 2 is an example volume number)

    DISKPART> sel vol 2                    `
    
  4. Naming the volume :

    DISKPART> assign letter=E:              `
    
  5. Exit Diskpart :

    DISKPART> exit                          `
    

Fixing the Grub :

  1. First

     C:\WINDOWS\system32> cd /d E:     
    
  2. Then

     E:\> ls EFI
    
  3. Next

     E:\>cd EFI
    
  4. Next

     E:\EFI>cd ubuntu
    
  5. Next

     E:\EFI\ubuntu> touch grubx64.efi.gbr
    
  6. Now revert back to C Drive and set path to grub as default :

    E:\EFI\ubuntu> cd /d C:
    
    C:\WINDOWS\system32> bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi
    
  7. Reboot Your Computer and it should work.

0

I've had the same issue after upgrading to Ubuntu 21.04 dual-booting with W10 but entering the command that you tried in an admin command line in windows seems to have solved it.

bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi
1
  • Have the same issue as posted by author but not worked by applying your command Aug 16 at 5:16
0

I had the same problem and I found another question related to this.

I found out that my problem was probably some kind of Windows malfunctioning that was causing errors in GRUB loading. What actually worked for me was reinstalling GRUB for UEFI boot (and not for the Legacy one), following the arch wiki, and changing my BIOS settings from "Legacy+UEFI" to "UEFI".

Hope this will help!

0

I've got the same issue after upgrading Kubuntu to 21.04.

Booted from live USB, tried boot-repair with different options, it did not help.

It turned that my Acer PC:

  • Does not support booting via shimx64.efi, but supports grubx64.efi and refind_x64.efi.
  • Supports only boot record named "Windows Boot Manager" and ignores others.

The solution that worked for me:

  1. Boot from a suitable Linux live USB, for example Kubuntu live USB.

  2. Become root and install efibootmgr if needed:

     sudo -i
     apt install efibootmgr
    
  3. Check that the active boot record named "Windows Boot Manager" contains unwanted bootloader:

     efibootmgr --verbose
    
  4. Note the number of the active boot record. Its format will be BootXXXX. In my case it was Boot0000.

  5. Remove the active boot record:

     efibootmgr --delete-bootnum --bootnum 0000
    
  6. Create a boot record with wanted bootloader at the place of just-removed boot record:

     efibootmgr --create --bootnum 0000 \
                --label 'Windows Boot Manager' \
                --loader '\EFI\ubuntu\grubx64.efi'
    

    or

     efibootmgr --create --bootnum 0000 \
                --label 'Windows Boot Manager' \
                --loader '\EFI\refind\refind_x64.efi'
    
  7. Check that the boot record table looks good now:

     efibootmgr --verbose
    
  8. Reboot.

0

In terminal, try running:

sudo update-grub
sudo apt update && sudo apt upgrade

I've been having this issue as well and have had to use boot-repair off a live usb. I've tried this after seeing that in the standard repo there seems to be an updated grub version I guess (grub2? Is this old or am I just dumb?). After updating and restarting, I still get the same error screen as you, but on the very last line, it now reads:

start_image() returned Invalid Parameter, falling back to default loader

With that, it now shows the general grub menu I'm used to, allowing me to select Windows 10 or Ubuntu again. This has been the closed I've gotten to a solution so without having to run boot-repair every time I'm down with Windows and need to get to Ubuntu. I hope this helps!

0

I believe this has something to do with Microsoft trying to enforce secure boot. If I load the EFI shell from bios, and navigate to EFI\ubuntu, I was able to copy grubx64.efi over shimx64.efi. I'm assuming shimx64.efi isn't getting the correct parameters hence the error so just trick things by putting grubx65.efi there instead.This assumes you are not running secure boot, and I'm running windows 10 instead of 11.

0

I am also suffering from this issue running Windows 10 dual-booting with Ubuntu 20.04.3 LTS. Following the advice in this thread and others I've got things to the same point as FirDouglas. That is, grub fails to load initially, it then 'falls back to default loader' and I can select Ubuntu. This would be bearable if Ubuntu loaded up correctly. For whatever reason, it doesn't load the NVIDIA graphics driver (and possibly others but I haven't tested enough to find out) and the resolution is all kinds of messed up. Running boot-repair and restarting fixes everything. Loading into Windows breaks it again, sadly.

I don't have enough technical knowledge to fix it myself but, hopefully, this bit of information helps point to what the problem may be.

EDIT: I have managed to find a solution (that works for me, at least). That is, switching from shimx64.efi to grubx64.efi, which sounds like what FirDouglas has done except that I did it via the boot-repair package. Here's what I did: rather than choosing the recommended repair, I went into advanced options and, under "GRUB options", unchecked the "SecureBoot" option (it's checked by default despite Secure Boot being disabled in BIOS). I also checked "Purge GRUB before reinstalling it" to clear out what was there because I've been messing about with it - not sure if it's necessary in all cases. That's it, boot-repair now installs grubx64.efi and grub works just like it used to. You cannot run Secure Boot with this, obviously, but I will take that over having to run boot-repair every day.

Not the answer you're looking for? Browse other questions tagged or ask your own question.