Dual boot Arch Linux with Windows 10

9,386

OK, I have tried following

#efibootmgr -v

This returns all my boot options. It has Linux boot manager (1003) in the list but boot order didn't specify any thing about it. So, I manually edited the boot order by

# efibootmgr -o 1003,1001,2001 

But, the problem is same. Boot order is reverted back after an reboot. So I checked if Linux boot manager is visible to bcd store in Windows 10

bcdedit /enum firmware

bcd store contains my Linux boot manager. So I ran

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

in an elevated command prompt. This command will make Windows boot loader to call the Linux boot manager without directly calling Windows 10.

This does solve my problem. Now I've a dual boot Windows 10 and Arch Linux on the same HDD.

Share:
9,386

Related videos on Youtube

Irshad
Author by

Irshad

SOreadytohelp

Updated on September 18, 2022

Comments

  • Irshad
    Irshad over 1 year

    On my Acer laptop I have Windows 10 installed on /dev/sda4 and the ESP partition is /dev/sda2.

    As described in the Beginner's Guide I installed Arch Linux on a newly created partition /dev/sda5 and swap /dev/sda6 with the Windows 10 created ESP /dev/sda2 as /boot.

    As the bootloader I chose systemd-boot which is recommended by the guide if the motherboard is UEFI (which it is).

    I configured the /boot/loader/loader.conf as follows:

    timeout 10
    default arch
    

    I created an entry for arch.conf at /boot/loader/entries/arch.conf as follows;

    title          Arch Linux
    linux          /vmlinuz-linux
    initrd         /initramfs-linux.img
    options        root=/dev/sda5 rw
    

    But after rebooting Windows 10 boots by default. I couldn't even see the bootloader menu. Also no option to select the Linux boot loader in the boot options. What am I doing wrong?

    Note: Both fastboot(Windows 10) and secureboot (UEFI) are off.

    In the question Windows 10 / Linux Dual Boot - Boot-loader Problems the OP uses GRUB for the bootloader. In my case I'm using systemd-boot. And in my setup fastboot aka fast startup is already disabled.

    #efibootmgr -v returns all my boot options. It has the Linux boot manager in the list, but the boot order didn't specify anything about it. So, I manually edited the boot order by # efibootmgr -o 1003,1001,2001. But, the problem is the same. The boot order is reverted back after an reboot.

    • Moab
      Moab about 8 years
    • Irshad
      Irshad about 8 years
      @Moab I saw this question earlier. It's different than mine. I've explained it through an edit to my post. Also I've already done the answer that is accepted but the problem persist.
    • Tom Yan
      Tom Yan about 8 years
      You sure you've ran bootctl install appropriately? Sounds like systemd-boot is not properly registered / made default in the NVRAM. Check the output of efibootmgr in Arch live and take a look at your UEFI boot menu.
    • Irshad
      Irshad about 8 years
      @TomYan I'm positive that I ran bootctl install correctly
    • Matt
      Matt over 7 years
      No Moab, this is NOT a duplicate of superuser.com/questions/952026/…
  • Matt
    Matt over 7 years
    Still unsolved using efibootmgr... seems strange that we have to go into Windows to change those variables... Nobody knows why...
  • Matt
    Matt over 7 years
    from wiki.archlinux.org/index.php/… : "Some motherboards override by default any settings set with efibootmgr by Windows if it detects it. This is confirmed in a Packard Bell laptop."