3

After a firmware update on my laptop, the Grub menu disappeared and I can only boot on Windows 10.

Machine configuration:

  • Lenovo X1 Carbon Gen 7th shipped with Windows 10.
  • I installed Ubuntu 18.04 with dual boot.
  • Grub boot menu selection was working fine up to firmware update yesterday.
  • The laptop is now booting directly to W10, without Grub menu showing up.

What I did:

  • Try to upgrade grub using this post. Result was that a boot item was added in the BIOS. However when selected, it does nothing.
  • Try to add a boot item using efibootmgr using following command line efibootmgr -c -d /dev/nvme0n1p1 -p 1 -l \\EFI\\ubuntu\\grubx64.efi -L "GRUB ubuntu". I did that following this other post. Result was that a boot item was added in the BIOS. However when selected, it does nothing.
  • Use boot-repair. I got following message: The boot of your PC is in EFI mode, but no ESP partition was detected. You may want to retry after creating a ESP partition (FAT32, 100MB~250MB, start of the disk, boot flag). Are you sure you want to continue anyway? And I didn't continue.

Ubuntu Pastebin is here. I notice in the Pastebin the message: Grub2 (v1.99-2.00) is installed in the MBR of /dev/nvme0n1 and looks at sector 2048 of the same hard drive for core.img, but core.img can not be found at this location. But I don't know how to use this information.

Ubuntu system is still on the disk:

nvme0n1                477G                                
├─nvme0n1p1 vfat       260M                                SYSTEM
├─nvme0n1p2             16M                                
├─nvme0n1p3           97.7G                                
├─nvme0n1p4 ntfs      1000M /mnt/boot-sav/nvme0n1p4        WinRE_DRV
└─nvme0n1p5 ext4       378G /mnt/boot-sav/nvme0n1p5        

at partition 5.

I have in my pocket: an old Clonezilla image of the full disk, a two days old backup... and the working laptop booting on W10 and on an Ubuntu USB stick.

Any suggestion on what to do? My target is to avoid reinstalling Ubuntu...

Thanks for your attention.

4
  • If you updated your firmware/BIOS, it's possible that some or all BIOS settings were switched to default. I hate to have to ask the obvious, but did you make sure that your BIOS is booting first to the drive/partition that contains Ubuntu (and GRUB)?
    – Nmath
    Aug 3 '20 at 1:06
  • @Nmath Thanks for your message. Yes, the BIOS is booting first to Ubuntu. BTW, I also made a try by entering BIOS and selecting the Ubuntu or GRUB options manually. In both cases, the laptop doesn’t boot and comes back to boot options selection. Aug 3 '20 at 5:10
  • I had the exact same issue today after installing the latest firmware updates, but was able to reinstall grub using boot-repair. My EFI partition had the hidden flag set. I unset that using gparted and boot-repair was able to to fix it.
    – ben_w
    Aug 4 '20 at 19:46
  • 1
    @ben_w Thanks for the comment. On my side I fixed the issue by unlocking secure boot. I was then able to run boot-repair and turn secure boot on after. Aug 5 '20 at 5:34
3

There can be a very simple fix (see the source), but in a nutshell, from a Windows Terminal with admin rights, run the command:

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

Warning: this is of course specific to Ubuntu. Other distros will have different paths.

If the command succeeds, you can reboot and grub should appear. Otherwise, if the command fails, run either:

# cancel the previous command:
bcdedit /deletevalue {bootmgr} path \EFI\ubuntu\grubx64.efi

# or, to explicitly revert to Windows boot manager:
bcdedit /set {bootmgr} path \EFI\Microsoft\Boot\bootmgfw.efi

Note: Secure boot must be deactivated.

1

According to comments above, it seems that several ways can be used to solve the issue.

In case the EFI System Partition - ESP has been marked as hidden, this flag has to be removed in order to run boot-repair.

You may also have to unlock secure boot in BIOS in order to run boot-repair.

Bottom line, boot-repair is the a solution, but running it may require some preliminary actions.

2
0

Same for me with lenovo legion..

Solution

  1. Enter BIOS at startup (F2 or fn + F2 or other depending on you machine)
  2. In the boot menu, check boot sequence (should not be changed but make sure 1# is the right hard drive)
  3. Change EFI sequence to have Ubuntu/Linux or whatever has grub at first position
  4. Save and reboot
  5. If starting Linux distro you get black screen (it appends to me) enter UEFI BIOS again and restore factory default. In the boot menu, boot sequence has changed to legacy
  6. Reboot

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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