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.
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.
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.
LastMod 2022-04-29 (832b7a8)