Virtualbox 4.3.30, EFI for VM enabled
I experienced this problem while installing Funtoo Linux in a Virtualbox VM with EFI enabled. I used the standard Funtoo Installation Guide.
Virtualbox has volatile NVRAM: After a complete shutdown of the VM, it forgets the settings needed to find OS loader. See bug report https://www.virtualbox.org/ticket/14279.
I created a startup.nsh script using the EFI shell to provide the path to the OS loader file.
- remove any CD images (like systemrescuecd) from the VM settings
- start the VM
- wait for the countdown or press Esc immediately to reach the EFI shell
- type edit startup.nsh to open the full-screen editor
- enter "fs0:\EFI\Funtoo Linux [GRUB]\grubx64.efi" (including the double quotes, since the path contains spaces)
- press CTRL-s (maybe twice) to save and confirm saving by pressing Enter
- quit editor by pressing CTRL-q
- type reset to reboot the machine (or kill the VM and boot it using the GUI)
- wait for the countdown or press Enter to immediately run the startup.nsh script
Funtoo should now happily boot within the VM.