Linux – Arch Linux grub installation error “airootfs”

arch linuxbootboot-loadergrub2

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.

Best Answer

Seems like you should do grub2-mkconfig in the chroot instead of doing it outside. grub2-mkconfig uses grub-probe to detect real devices associated with mount points, while airootfs (archiso's rootfs) is loaded into the ram and doesn't have a canonical path.

So before installing grub and generating config, do this first:

arch-chroot /mnt /bin/bash
Related Question