2

I installed Pop-OS in a dual-boot system.

Previously, my EFI partition was around 250mb. Pop Installer told me that it was too small. So instead of resizing and moving (due to possibility of data loss and Windows not booting), I deleted the old EFI partition and created a new EFI partition for install.

Output of efibootmgr:

BootCurrent: 0006
Timeout: 1 seconds
BootOrder: 0006,0007,0002
Boot0002* Windows Boot Manager
Boot0006* Pop!_OS 20.04 LTS
Boot0007* UEFI OS

Output of bootctl:

System:
     Firmware: UEFI 2.70 (American Megatrends 5.13)
  Secure Boot: disabled
   Setup Mode: user

Current Boot Loader:
      Product: systemd-boot 245.4-4ubuntu3.6pop0~1617377648~20.04~eafddeb
     Features: ✓ Boot counting
               ✓ Menu timeout control
               ✓ One-shot menu timeout control
               ✓ Default entry control
               ✓ One-shot entry control
               ✓ Support for XBOOTLDR partition
               ✓ Support for passing random seed to OS
               ✓ Boot loader sets ESP partition information
          ESP: /dev/disk/by-partuuid/06919b6c-bed1-461e-9b6d-04dc9597fd38
         File: └─/EFI/SYSTEMD/SYSTEMD-BOOTX64.EFI

Random Seed:
 Passed to OS: yes
 System Token: set
       Exists: yes

Available Boot Loaders on ESP:
          ESP: /boot/efi (/dev/disk/by-partuuid/06919b6c-bed1-461e-9b6d-04dc9597fd38)
         File: └─/EFI/systemd/systemd-bootx64.efi (systemd-boot 245.4-4ubuntu3.6pop0~1617377648~20.04~eafddeb)
         File: └─/EFI/BOOT/BOOTX64.EFI (systemd-boot 245.4-4ubuntu3.6pop0~1617377648~20.04~eafddeb)

Boot Loaders Listed in EFI Variables:
        Title: Pop!_OS 20.04 LTS
           ID: 0x0006
       Status: active, boot-order
    Partition: /dev/disk/by-partuuid/06919b6c-bed1-461e-9b6d-04dc9597fd38
         File: └─/EFI/SYSTEMD/SYSTEMD-BOOTX64.EFI

        Title: UEFI OS
           ID: 0x0007
       Status: active, boot-order
    Partition: /dev/disk/by-partuuid/06919b6c-bed1-461e-9b6d-04dc9597fd38
         File: └─/EFI/BOOT/BOOTX64.EFI

Boot Loader Entries:
        $BOOT: /boot/efi (/dev/disk/by-partuuid/06919b6c-bed1-461e-9b6d-04dc9597fd38)

Default Boot Loader Entry:
        title: Pop!_OS
           id: Pop_OS-current.conf
       source: /boot/efi/loader/entries/Pop_OS-current.conf
        linux: /EFI/Pop_OS-39f0e06d-54c4-4fd3-af74-605fcd37bc55/vmlinuz.efi
       initrd: /EFI/Pop_OS-39f0e06d-54c4-4fd3-af74-605fcd37bc55/initrd.img
      options: root=UUID=39f0e06d-54c4-4fd3-af74-605fcd37bc55 ro quiet loglevel=0 systemd.show_status=false splash

There is no Windows in EFI variables. I increased the timeout of systemd-boot to 5 seconds, and now I see Pop OS and Boot to System Firmware.

This answer required the Windows EFI partition, which I deleted. Is there a way to get Windows Entry in systemd-boot?

Gparted (if it matters): Gparted

2 Answers 2

3

I recently had some similar issues. If your EFI partition data is unrecoverable, you can boot into Windows install media, a Windows 10 disc or a flash drive with the Win 10 image flashed. Once booted into the installation media:

  • Press Shift+F10 to open command prompt, then execute the following commands:
  • diskpart
  • list disk
  • sel disk # (replace # with the disk number containing the new ESP/EFI partition)
  • list part
  • sel part # (replace # with the fat32 EFI partition number)
  • assign letter=s
  • list vol Take note of the drive letter Windows OS has been assigned.
  • exit
  • bcdboot X:\windows /s s: (Replace X with the letter corresponding to the windows installation)

Now you can add the Windows entry to /boot/efi/loader/loader.conf manually & add a timeout to delay booting to the default OS & allow yourself time to choose during startup.

  • Boot into Pop!_OS
  • Open a terminal
  • Run sudo nano /boot/efi/loader/entries/windows.conf
  • Paste the following into the document:
title Windows 10
efi /EFI/Microsoft/Boot/bootmgfw.efi
#you may need to search for your bootmgfw.efi if it's not here
  • Save and exit
  • Run sudo nano /boot/efi/loader/loader.conf
  • Add this line timeout 20 (enter any value in seconds)
  • Add this line to prevent duplicate entries of Windows auto-windows 0
  • Optionally, set a default OS by adding another line & using it's title default "Windows 10" or default "Pop!_OS"
  • Save and exit

Done!

2

From this answer on askUbuntu, I used TestDisk to recover the data in the deleted EFI partition.

I copied the Microsoft folder from /boot/efi/EFI in the deleted EFI partition and copied it to the same destination but in the new efi partition. And Voila! Windows Boot Manger showed up in the systemd-boot menu.

You must log in to answer this question.

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