3

I've recently replaced my dualboot (Ubuntu/Win10) by (Pop!_OS 20.04/Win10). Now, when I start my computer, no boot menu is shown and it boots directly into windows. Here's what I've tried so far:

  • I repaired the systemd-bootloader as described here, however, this didn't fix my problem.

  • I Inserted an Ubuntu Livestick (which has GRUB installed) to get into the grub menu. From there I don't start ubuntu, but go into the GRUB command line and set the bootloader to systemd as follows:

    • chainloader (hd2,1)/efi/systemd/systemd-bootx64.efi

    • boot

    This lets me boot into Pop!_OS (But doesn't show a menu as well, so I could not boot into windows from there). It also shows, that the systemd bootloader is generally working

  • I then figured that the problem might be with windows, so I booted into windows and then checked the Boot Configuration Data with bcdedit. I had a similar issue with my ubuntu installation and I could fix it by defining the path of the grub efi file as bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi. Turns out, there really is an issue there.

    • First of all, there is the bottom line telling me "A device which does not exist was specified".
    • Second, it seems like the wrong device is chosen for the {bootmgr}. Currently, the device is defined as "partition=C:". However, the EFI files I'm looking for are not on the C: partition but on Disk1Partition1. The problem is, I don't know what this partition is called, i.e. how I need to define it in the bcdedit entry such that it gets recognized during startup. Here's the output of bcdedit
C:\WINDOWS\system32>bcdedit
Windows Boot Manager
--------------------
identifier              {bootmgr}
device                  partition=\Device\HarddiskVolume2
path                    \EFI\systemd\systemd-bootx64.efi                                                                                                    
description             Windows Boot Manager
locale                  en-GB
inherit                 {globalsettings}
default                 {current}
resumeobject            {c9199aab-b651-11ea-8b88-3ce1a1c4ba83}
displayorder            {current}
toolsdisplayorder       {memdiag}
timeout                 30
Windows Boot Loader
-------------------
identifier              {current}
device                  partition=C:
path                    \WINDOWS\system32\winload.efi
description             Windows 10
locale                  en-GB
inherit                 {bootloadersettings}
recoverysequence        {c9199aae-b651-11ea-8b88-3ce1a1c4ba83}
displaymessageoverride  Recovery
recoveryenabled         Yes
isolatedcontext         Yes
allowedinmemorysettings 0x15000075
osdevice                partition=C:
systemroot              \WINDOWS
resumeobject            {c9199aab-b651-11ea-8b88-3ce1a1c4ba83}
nx                      OptIn
bootmenupolicy          Standard
hypervisorlaunchtype    Auto
A device which does not exist was specified.

And here is the Disk Management window of Windows, which shows you my configuration. the systemd-efi files are located on Disk1 Partition1.

Disk Management Windows

Also, here's some information about my computer

Information Computer

Does anyone have a clue on how to solve this issue?

Thanks in advance :)

4
  • Which computer model are you using? The implementation of Uefi differs from brand to brand...
    – Boba Fit
    Nov 11, 2020 at 9:03
  • You can mount Disk1Part1 with diskpart. Do it similar to this guide. Perhaps you can thengive windows the correct partition...
    – Boba Fit
    Nov 11, 2020 at 9:06
  • i mounted the EFI partition and assigned its letter to the bcdedit-entry. However, it changed nothing. After the reboot directly booted into windows, the entry in bcdedit was overwritten as "partition=\Device\Harddiskvolume2".
    – MarayJay
    Nov 11, 2020 at 9:25
  • Welcome to the site. Please don't post screenshots of console output. They are often difficult to read, the content will not show up in search enginre results, and contributors trying to help will have to type-copy content when trying to analyze/reproduce your problem. Instead, paste it into the question using code formatting.
    – AdminBee
    Nov 11, 2020 at 14:18

1 Answer 1

2

I managed to fix the issue with the help of the comments. Thank you all! For completeness, I quickly state all the steps I took to fix this:

Quickfix - If you quickly need to boot without solving the actual problem

  • Insert a livestick with a functioning bootloader (I used Ubuntu 20.04 with GRUB)

  • Once the GRUB from the livestick started, interrupt the bootloading process by pressing c or esc.

  • Now, define the bootloader, that you want to use (for me, it was the systemd bootloader, located on my harddisk2, partition 1)

    chainloader (hd2,1)/efi/systemd/systemd-bootx64.efi

    boot

This should let you boot with the defined bootloader.

Fix the problem

  • I first repaired the systemd bootloader according to this tutorial. (You might need to use the quickfix above to boot into your linux system)

  • As this didn't solve the issue, I booted into windows, executed (as administrator) the command prompt.

  • I mounted my EFI partition, by following this guide (I mounted it at V:).

  • Then, I added the EFI file as {bootmgr} path and the mounted EFI partition as a device in my bcdedit {bootmgr} entry

    bcdedit /set {bootmgr} path \EFI\systemd\systemd-bootx64.efi

    bcdedit /set {bootmgr} device partition=V:

  • I then rebooted (it again booted directly into windows) and saw, that the bcdedit device entry of {bootmgr} changed from partition=V: to partition=\Device\HarddiskVolume2

  • I rebooted again, and it worked. So maybe I could have directly set the device to partition=\Device\HarddiskVolume2... However, this worked for me.

You must log in to answer this question.

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