If you create a UEFI guest OS (Linux, at least) in VirtualBox, you will find that every cold boot ends up at a UEFI shell prompt. In order to boot the guest OS you need to type this at the UEFI prompt:
The fs0 points to the first 'drive'. If you have a thumb drive or multiple virtual HDD setup you'll need to adjust this (to, say, fs1 or fs2 etc.)
A permanent workaround is to create a nsh script that does this for you at boot. In the running guest, do the following:
$ sudo mount /dev/sda1 /mnt
$ cd /mnt
$ sudo sh -c "echo '\EFI\ubuntu\grubx64.efi' > startup.nsh"
** got the answer from here