This bug is caused by /boot/efi/EFI/elementary/grubx64.efi.
In the file grubx64.efi, the GRUB environment variable "prefix" is hard coded with the path "/EFI/ubuntu", which is a wrong path where the grubx64.efi and the grub.cfg are located. So the config file grub.cfg cannot be found by grubx64.efi, and the system failed to boot.
The solution for me is to use a hex editor to change the hard coded path.
1. Use hex editor and open /boot/efi/EFI/elementary/grubx64.efi with root previlege.
2. Find the string "/EFI/ubuntu", and replace it to "/EFI/elementary".
3. Save file and reboot.
This bug is caused by /boot/efi/ EFI/elementary/ grubx64. efi.
In the file grubx64.efi, the GRUB environment variable "prefix" is hard coded with the path "/EFI/ubuntu", which is a wrong path where the grubx64.efi and the grub.cfg are located. So the config file grub.cfg cannot be found by grubx64.efi, and the system failed to boot.
The solution for me is to use a hex editor to change the hard coded path. EFI/elementary/ grubx64. efi with root previlege.
1. Use hex editor and open /boot/efi/
2. Find the string "/EFI/ubuntu", and replace it to "/EFI/elementary".
3. Save file and reboot.