I was following the official installation tutorial. Everything was smooth until the boot loader section.
I had encountered the error of
/usr/bin/grub-probe: error: failed to get canonical path of 'airootfs'.
same as this question while executing the command:
grub-mkconfig -o /boot/grub/grub.cfg
I was installing arch on VirtualBox and was following the official's wiki tutorial GRUB section step by step.
I can boot into grub successfully but all that I can see is only a grub shell. As a inference, I think it has derailed since the step to generate the grub configuration file. Hope that my info is helpful.
BTW in fact, I had also encountered this error in the previous step - installing the grub
grub-install --target=i386-pc /dev/sda
I added the root directory parameter and it went on without appearing error.
grub-install --root-directory=/mnt /dev/sda
I did so because I mounted my main Linux partition /dev/sda3 on /mnt but there isn't any root or boot directory parameter for me to use in grub-mkconfig.
Here is my partition table displayed by fdisk utility:

Thx a lot. Regards.
grub2-mkconfigin the chroot instead of doing it outside.grub2-mkconfigusesgrub-probeto detect real devices associated with mount points, whileairootfs(archiso's rootfs) is loaded into the ram and don't have a canonical path.