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.

  • 2
    Possible duplicate of Windows 10 / Linux Dual Boot - Boot-loader Problems
    – Moab
    Feb 23 '16 at 22:19
  • @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.
    – Irshad
    Feb 24 '16 at 3:40
  • 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.
    – Tom Yan
    Feb 24 '16 at 10:46
  • @TomYan I'm positive that I ran bootctl install correctly
    – Irshad
    Feb 24 '16 at 11:49
  • No Moab, this is NOT a duplicate of superuser.com/questions/952026/…
    – Matt
    Nov 28 '16 at 20:25

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.

  • Still unsolved using efibootmgr... seems strange that we have to go into Windows to change those variables... Nobody knows why...
    – Matt
    Nov 28 '16 at 20:23
  • 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."
    – Matt
    Nov 29 '16 at 10:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.