For something like OpenSUSE you go into YAST2-GUI and click the probe foreign OS and then it asks you if you want Windows or Linux as the default boot. But to do it manually you add a menu entry to /boot/grub2/custom.cfg. or in /etc/grub.d/40_custom. After editing this you will have to run grub2-mkconfig -o /boot/grub2/grub.cfg which will compile all the grub info into /etc/grub2/grub.cfg
I believe the custom.cfg entries end up after the 40_custom entries that the OS may have included.
There is a persistent method entry if you did want to edit the /etc/grub2/grub.cfg directly, but probably not advised.
Here is my entry for Windows boot partition and location of MS boot. Also below that is a UEFI entry for geting back to the BIOS, not relevent to this topic, but just so you see how the menu entries are defined. In my system these are at the end of all the other Linux entries.
I responded how to via another comment, but wanted to mention that you may have a chainload to Windows already with your dual boot, but the main point was using two EFI partitions and chainloading to the other one, so Windows isn’t ever in charge of files in your linux boot partition
How to add chainloader entry to grub?
For something like OpenSUSE you go into YAST2-GUI and click the probe foreign OS and then it asks you if you want Windows or Linux as the default boot. But to do it manually you add a menu entry to /boot/grub2/custom.cfg. or in /etc/grub.d/40_custom. After editing this you will have to run grub2-mkconfig -o /boot/grub2/grub.cfg which will compile all the grub info into /etc/grub2/grub.cfg I believe the custom.cfg entries end up after the 40_custom entries that the OS may have included. There is a persistent method entry if you did want to edit the /etc/grub2/grub.cfg directly, but probably not advised.
Here is my entry for Windows boot partition and location of MS boot. Also below that is a UEFI entry for geting back to the BIOS, not relevent to this topic, but just so you see how the menu entries are defined. In my system these are at the end of all the other Linux entries.
### BEGIN /etc/grub.d/30_os-prober ### menuentry 'Windows Boot Manager (on /dev/nvme0n1p2)' --class windows --class os $menuentry_id_option 'osprober-efi-4E48-193F' { insmod part_gpt insmod fat search --no-floppy --fs-uuid --set=root 4E48-193F chainloader /efi/Microsoft/Boot/bootmgfw.efi } ### END /etc/grub.d/30_os-prober ### ### BEGIN /etc/grub.d/30_uefi-firmware ### menuentry 'UEFI Firmware Settings' $menuentry_id_option 'uefi-firmware' { fwsetup }
I responded how to via another comment, but wanted to mention that you may have a chainload to Windows already with your dual boot, but the main point was using two EFI partitions and chainloading to the other one, so Windows isn’t ever in charge of files in your linux boot partition