I recommend that you first disable automatic boot repair from a console in Windows:
bcdedit /set {current} recoveryenabled No
Try now if that has solved your problem. If not, you may have to manually set rEFInd. I had to do it in my Dell pc following the instruccions in the rEFInd website, in the "Alternative Naming Options / Renaming Files Manually" section. I'll paste here the instructions:
Access your ESP, as described in earlier sections.
Look for an existing directory called EFI/BOOT or EFI/Microsoft/Boot. If neither of these directories exist, skip the next step. (Note that FAT is case-insensitive, so the name may vary in case.)
Rename the existing directory or boot loader file to something else. For EFI/BOOT
, try renaming it to EFI/Oldboot
. For EFI/Microsoft/Boot
, move or rename the bootmgfw.efi
file it contains. For instance, you can move it to EFI/Microsoft
. This will keep the boot loader accessible to rEFInd's menu, while preventing the firmware from launching it automatically.
Rename/move your EFI/refind
directory to EFI/BOOT
. If you're working from EFI/Microsoft/Boot
, you should move the contents of your rEFInd directory to EFI/Microsoft/Boot
.
Rename EFI/BOOT/refind_x64.efi
to the name of the boot loader it's replacing—it should become EFI/BOOT/bootx64.efi
or EFI/Microsoft/Boot/bootmgfw.efi
.
If that sounds too complicated, and just as a plain-language summary (this may only be valid for some machines. If you don't find some of this directories or files, please read the website instructions):
- Access to
/boot/efi
- Rename
EFI/BOOT to EFI/Oldboot
- Move
EFI/Microsoft/Boot/bootmgfw.efi
to EFI/Microsoft/bootmgfw.efi
- Copy
EFI/refind/*
to EFI/Microsoft/Boot/*
(* means all content)
- Rename
EFI/Microsoft/Boot/refind_x64.efi
to EFI/Microsoft/Boot/bootmgfw.efi
- Reboot