0

I have Windows 10 on an m.2 drive and Ubuntu 17.4 on a SATA drive. The Ubuntu installation is encrypted.

  • I dual boot using the boot order option (F9 on HP computer on startup)
  • Windows and Ubuntu are on their own isolated drives
  • Ubuntu was installed last (basic option, erased disk)
  • Two separate boot managers
  • Everything worked (could boot both Windows and Ubuntu via F9)
  • After using Windows for a day, I now have no Ubuntu boot option
  • Running boot-repair doesn't seem to do much on the Ubuntu side (I think it only repairs the Windows partition). No options in the GRUB menu either

Ubuntu drive

ubuntu@ubuntu:~$ efibootmgr
BootCurrent: 000D
Timeout: 0 seconds
BootOrder: 000C,000D,0011,000E,000A,0012,0000,0001,0002,0003,0004,0005,0006,0007,0008,0009,000F
Boot0000 Startup Menu
Boot0001 System Information
Boot0002 Bios Setup
Boot0003 3rd Party Option ROM Management
Boot0004 System Diagnostics
Boot0005 System Diagnostics
Boot0006 System Diagnostics
Boot0007 System Diagnostics
Boot0008 Boot Menu
Boot0009 HP Recovery
Boot000A* PLEXTOR PX-256M5S
Boot000C* Windows Boot Manager
Boot000D* SanDisk Extreme [snip]
Boot000E USB:
Boot000F Network Boot
Boot0011* PLEXTOR PX-256M5S
Boot0012* SAMSUNG MZVLV256HCHP-[snip]
Boot0013* IPV6 Network - Intel(R) Ethernet Connection (4) I219-V

  • Ubuntu lives on the Plextor drive and Windows is on Samsung
Semo
  • 1

1 Answers1

1

I don't see an ubuntu entry in your efibootmgr output. This likely indicates either a defective firmware that's "forgetting" EFI entries or that you removed your /dev/sda and booted with the computer in this configuration. Many, but not all, EFIs deliberately erase invalid boot entries at boot time. Thus, if you unplug a disk on which a boot loader resides and boot, the boot loader will become unavailable the next time you boot, even with the disk plugged in.

If your firmware is defective, I recommend first looking for a firmware update. This might fix the problem, but don't hold out too much hope.

If you unplugged the SATA disk, then you can use efibootmgr to create a new entry. Something like this should do the job:

sudo efibootmgr -c -d /dev/sda -p 1 -l \\EFI\\ubuntu\\shimx64.efi -L ubuntu

You need to adjust the -d (disk) and -p (partition number) options for your system. In your case, -d should be /dev/sda, but you haven't said what partition on that disk you're using as an ESP.

Note that this fix will work until you unplug the disk again. Thus, you shouldn't do this on a regular basis. If you need to do so, you might need to look at other workarounds, such as:

  • Move the GRUB installation from your SATA disk to your M.2 disk.
  • Install my rEFInd on the M.2 disk.
  • Create a recovery procedure using an emergency disk, EFI shell, or Windows to restore the lost boot entry. You could use an EFI shell script to do the equivalent of the efibootmgr command, for instance.
Rod Smith
  • 45,120
  • 7
  • 66
  • 108