In my case it was Windows 10 + Manjaro dual boot but it should work for other distributions with single boot as well.

P.S.: There may be other ways to fix this but I am writing here what worked for me. Also, I am not responsible if your stuff breaks by following the steps here.

tl;dr: Boot using a live media, chroot to your existing installation and install GRUB to your boot partition.

Long version

If the above mentioned method is of least help, here is Manjaro specific procedure.

It usually happens when the partition table gets altered by Windows, either by a Windows update or by manually modifying partitions.

<rant>Please note that I would not have written this post if all of the existing Manjaro forums had not broken, returning a 404. Also, it would have saved a lot of my time.</rant>

Get yourself a live media, boot into your computer and open a terminal. Once there, go figure out your boot partiton and Linux install with sudo fdisk -l.

Next, mount your Linux install with sudo mount /dev/sdX# /mnt. Replace /dev/sdX# with whatever you have in your case.

Note: At this point, some sites ask you to install mhwd-chroot and let it do its sweet job of chroot-ing and stuff. Well, I couldn’t find it in the official repository and the AUR so we follow a different procedure here.

chroot into your existing Linux install. In my case, it was Manjaro and the live media provides a sweet program called manjaro-chroot so all I had to do was enter manjaro-chroot /mnt. Refer to Gentoo wiki or your distribution’s documentation for chroot-ing into your existing install.

Once there, mount your boot partition. It should be mount /dev/sdX# /boot/efi. Again, replace /dev/sdX# with whatever you have as boot partition.

Now enter grub-install /boot/efi. It should finish without error. Run grub-mkconfig -o /boot/grub/grub.cfg.

Exit and reboot. You should now be presented with grub menu.