Problem

After system update, grub update assigned the wrong root partition to the boot entry. During boot, grub is unable to find correct root partition.


P1: Manually boot GRUB

method

Manually assign correct root partition and load Linux kernel and initramfs image through grub command line.

code

set root=(hdX, gptX)
linux /boot/vmlinuz-<kernel file> root=LABEL=<root disk label>
initrd /boot/initramfs-<initramfs image file>
boot

P2: Manually boot from Arch emergency shell

method

Manually mount root partition by mounting correct partition to new_root.

code

mount /dev/nvmenXpX new_root
exit

Additional Notes

Seems like I am having this bug because the drive identifier (nvmenXpX) is different during boot and post boot. That is, grub-update recognizes nvmen1p2 to be the root partition while in Manjaro, but in Grub nvmen1p2 is mapped to another drive (need investigation).


References

Unix stack exchange - grub error: you need to load kernel first

Unix stack exchange - How to manually boot Arch Linux from preboot emergency shell?