First off, sorry if this isn’t quite the right community, I did try posting on [email protected] but didn’t get a solution. You can see that post here

I have my computer set up to dual boot pop!_os and windows on separate drives. I have my UEFI set up to boot into pop OS and I use systemd-boot to load windows, however after booting to windows and restarting my UEFI boot preferences are changed so Windows boots first instead of pop os.

I have fast boot and secure boot turned off in the bios and fast boot turned off in windows. How can I prevent this?

    • rickywithanm@aussie.zoneOP
      link
      fedilink
      arrow-up
      1
      ·
      1 year ago

      I’m a little confused about what I’m meant to be doing in this part

      You’ll need to find the partition number and the reference to the disk in /dev for your boot partition /dev/disk/by-partuuid/172a0183-3a89-4b78-b1b3-d016ca6675f7. You can try using ls -l /dev/disk/by-partuuid/172a0183-3a89-4b78-b1b3-d016ca6675f7 to see where it points (i.e. for /dev/sdb2 you would use --disk /dev/sdb --part 2).

      I also, get this error “invalid numeric value Y” when trying to manually register systemd-boot

      • Skull giver@popplesburger.hilciferous.nl
        link
        fedilink
        arrow-up
        5
        ·
        edit-2
        1 year ago

        The weird long /dev/disk/… I used comes straight from your Pastebin. It’s a unique link to the your EFI partition, but sadly efibootmgr can’t use that to register your bootloader. The Arch wiki example command leaves X and Y for you to fill in, and you need to find the X and Y for your system to make it work. They’re different for every computer so I can’t tell you what they are.

        On my system, the EFI partition is /dev/disk/by-partuuid/2fbab938-cc71-407a-996a-874d4486fca8. I used the ls command to find the right information in my example above, but realpath is probably better, so I’ll use that in this comment.

        I can find out the right X and Y for my system using the following command:

        user@ desktop ~ $ realpath /dev/disk/by-partuuid/2fbab938-cc71-407a-996a-874d4486fca8                       
        /dev/sde1
        

        As you can see, /dev/disk/by-partuuid/2fbab938-cc71-407a-996a-874d4486fca8 actually points to /dev/sde1. That means my disk (“X”) is sde and my partition number (Y) is 1.

        What this means in my case is that I would need to issue the following command to register systemd-boot:

        sudo efibootmgr --create --disk /dev/sde --part 1 --loader "\EFI\systemd\systemd-bootx64.efi" --label "Pop_OS" --unicode
        

        Notice how I filled in the e for X in /dev/sdX and 1 for Y.

        After running the registration command, I get the following output:

        BootCurrent: 0014
        Timeout: 1 seconds
        BootOrder: 0004,0003,0000,0015
        Boot0000* Windows Boot Manager
        Boot0001  Hard Drive
        Boot0002  USB KEY
        Boot0003* ubuntu
        Boot000E  Hard Drive
        Boot0010  USB KEY
        Boot0015  Hard Drive
        Boot0004* Pop_OS
        

        Ignore all the weird device names, my motherboard injects those into the configuration. The important part is that my computer’s boot order is 0004 (Pop_OS), 0003 (ubuntu), 0000 (Windows Boot Manager), and lastly 0015 (a random hard drive). This is the order of bootloaders my computer will try before throwing up a “no bootable device” error. The asterisks next to the name indicate that they’re enabled somewhere in the boot order.

        These numbers will look different on your computer. What you’ll probably want to do, is copy the bootorder as listed by the command that added the Pop_OS boot entry and add the number of your new bootloader in front.

        Suppose I want to change my system to try to boot Pop_OS first, then ubuntu, then Windows Boot Manager. I can do that without booting into my BIOS through the following command:

        sudo efibootmgr --bootorder 0004,0003,0000
        

        You can pick any order, but I would advice not removing any unless you know what you’re doing.

      • Ludrol@szmer.info
        link
        fedilink
        arrow-up
        1
        ·
        edit-2
        1 year ago

        lsblk -o NAME,SIZE,MOUNTPOINTS,UUID try this command, it will show you what partitions you have on the machine then modify previous command with correct labels and UUID

        sometimes you need to modify the command
        sudo efibootmgr --create --disk /dev/sdX --part Y --loader “\EFI\systemd\systemd-bootx64.efi” --label “Pop_OS” --unicode
        /dev/sdX --part Y needs to be replaced with correct labels for partitions, If you are lost just paste the output of the lsblk -o NAME,SIZE,MOUNTPOINTS,UUID command