This guide is for booting from UEFI.
- 
Get an USB with Arch Linux ISO flash in (I use balena-etcher) 
- 
Boot from Arch (in UEFI mode) 
- 
$ fdisk -lto find out where the Arch installation partition and EFI partition are
- 
Try mount, e.g., $ mount /dev/nvme0n1p1 /mntto mount the Arch partition, "/dev/nvmeXn1pY" or "/dev/sdXY" (substitute "X" and "Y" with your disk/partition numbers), to/mnt
- 
Try mount, e.g., $ mount /dev/nvme1n1p1 /boot/efito mount the EFI partition, "/dev/nvmeXn1p1" or "/dev/sdX1" (substitute "X" with your partition number), to/boot/efiRun $ mkdir /boot/efi, if there is no/boot/efiavailable, then mount again.
- 
$ arch-chroot
- 
$ grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader=arch_linux
- 
Reboot to test 
If the Entry of Windows Is not in GRUB Boot Menu
- 
Run the below, then reboot to test $ sudo os-prober $ grub-mkconfig -o /boot/grub/grub.cfg
- 
If the entry is still not there, $ fdisk -lto look for YOUR EFI PARTITION, "/dev/nvmeXn1p1" or "/dev/sdX1" (substitute "X" with your partition number)
- 
$ blkid /dev/nvme1n1p1to get theUUIDof the partition
- 
$ nano /etc/grub.d/40_customto manually add the entry (replaceYOUR-UUIDwith the UUID got from step 3) at the end of the filemenuentry "Windows 10" --class windows --class os { serach --no-floppy --set=root --fs-uuid YOUR-UUID chainloader ($root)/EFI/Microsoft/Boot/bootmgdw.efi }
- 
$ grub-mkconfig -o /boot/grub/grub.cfgagain, then reboot to test