I installed Ubuntu 14.10 in VirtualBox with UEFI. But now I have rebooted this OS and now it boots into a UEFI Interactive Shell v2.0. How can I boot normally into Grub again?
14 Answers
I encountered the same problem and found that if I issue following command in the interactive shell, the virtual machine would boot into Ubuntu:
fs0:\efi\ubuntu\grubx64.efi
(Use backslash, forward slash does not work. Commands in UEFI interactive shell are case insensitive.)
My VirtualBox version is 4.3.20 r96997, Ubuntu version is 14.10 AMD64. I do not know why this happens and how to solve it. Just found this not elegant and still a little bit troublesome workaround.
Update 1:
I read this, tracked down to a bug report and found a better workaround.
Update 2:
Workaround in Update 1 failed. I turned off the virtual machine, launched it. And it booted into UEFI Interactive shell again. According to this, the problem was probably cause by a VirtualBox bug. I am still looking for further solution to this.
Update 3:
Finally found an solution. According to this, you need to create a startup.nsh script manually. Except for the method in mentioned post, you can also do this:
$ sudo mount /dev/sda1 /mnt
$ cd /mnt
$ sudo sh -c "echo '\EFI\ubuntu\grubx64.efi' > startup.nsh"
- 696
- 6
- 6
I had the same problem (with the EFI enabled because I couldn't get it to run otherwise). Strange; although installation of Ubuntu 14.04.2 got no error, installing Kubuntu 15.04 failed to finalize. It froze at the very end when asked to remove DVD. After reset, it booted fine but after power down it brought up shell.
So, to avoid shell type:
fs0:
edit startup.nsh
and on the opened window add these 2 lines:
FS0:
\EFI\ubuntu\grubx64.efi
press Ctrl + s and Enter to save and Ctrl + q to quit. Then restart VM.
Alternatively, you can always use these 2 lines to exit shell and boot OS. But second time you restart you will be in a shell again and to avoid it edit startup.nsh.
- 1,290
Another option is to un-check the Extended Features option called 'Enable EFI' under 'Motherboard' for your VM.
Had this issue come up for Gnome Ubuntu 12.04.2 amd64bit installation.
Discovered this after having to change settings for hardware acceleration. I was left with having VT-x/AMD-V, Nested Paging enabled. My VM has 2 CPUs, 8GB RAM for reference.
After un-checking the issue is completely by-passed Gnome Ubuntu boots up no issues. Running Virtual Box 4.3.18 r96516 on Windows 7 64-bit Host.
- 131
Copy grubx64.efi to /EFI/boot/bootx64.EFI
VirtualBox use that bootx64.efi to boot.
Ref.: Archlinux Virtualbox wiki
- 161
- 1
- 4
I recently encountered this problem. Please check your virtual OS settings. Right click on virtual os-> system->Extended features-> Enable EFI(uncheck this). 
- 157
Another work around:
In the uefi shell, boot temporarily in to ubuntu using:
fs0:
cd EFI
cd ubuntu
grubx64
Then, inside ubuntu, edit startup.nsh file like below:
Open terminal Ctrl+Alt+T.
Type:
sudo nano /boot/efi/startup.nsh
Enter your password.
Now delete all that is in there using del or backspace key.
Then type this exactly: (FS0- that is the numeral 0, not the alphabet O)
FS0:
\EFI\ubuntu\grubx64.efi
Now press Ctrl+O (That is alphabet O).
Then, Alt+D (To change text to msdos format).
Then press Enter.
Then Ctrl+X.
Now reboot.
sudo reboot
Everything should be fine now.
- 4,687
- 43
Using Ubuntu 16.04.4 with EFI enabled and while starting the virtual machine I found that it won't boot and just stay in the EFI interactive shell.
This is how I fixed the boot:
First, I found that the grubx64.efi is located in BLK2, so for a one time boot I just typed the following in the interactive shell:
BLK2:/EFI/ubuntu/grubx64.efi
And viola, Ubuntu is up and running.
I order to permanently fix this issue, once the system was up I echoed the following line into /boot/efi/startup.nsh.
sudo echo 'BLK2:/EFI/ubuntu/grubx64.efi' > /boot/efi/startup.nsh
That's it, the system will boot correctly.
- 11
For ArchLinux on Virtualbox, following did the trick for me. On EFI Shell enter the following
Shell> bcfg boot add 0 FS0:\EFI\GRUB\grubx64.efi "GRUB"
Here we are setting the EFI boot order. I assume this works for any other Linux guests as well having EFI boot. Note: Your directory structure might differ. You can do ls on EFI prompt to check your directory structure to reach grubx64.efi after entering FS0: and hit enter.
Hope this helps!
- 111
- 2
I could solve this issue by changing the cdrom device within virtualbox from IDE to SATA. I removed the standard mapping of the virtual cdrom drive within the device configuration.
Simply add a cdrom device to the existing SATA Controller which is to be used for your installation media.
Et voila, no further problems with EFI.
- 11
- 1
for this you need to write it like the following:
fs0:
cd EFI
cd ubuntu
grubx64
this is how i got it to work if you write it any other way it wont work.
- 11
For defining or change of efi boot directory need to first run this command. This solved my problem.
sudo grub-install /dev/sda --target=x86_64-efi --efi-directory=/boot/efi/
NOTE: /dev/sda is the system hard disk.
- 23,497
- 11
On some linux guests , install process does not update the efi boot order. It depends on the distro version and virtualbox/efi version. This issue had affected, for example, Debian in early 2020 . The solutions are:
1.manualy run efibootmgr https://linux.die.net/man/8/efibootmgr
- fix efi boot order. For that, type first "exit" in efi shell, after vm start
You probably have an incompatible ISO. I was mistakenly using amd64 iso for ubuntu 22 on Apple Silicon. Using arm64 iso solved the issue for me.
- 1
After installing Kubuntu15.10 in VirtualBox5 with UEFI, the reboot of the VM fails.
Adding the line
FS0:\EFI\ubuntu\grubx64.efiin the UEFI-Shell doesn't help.
And the solution with creating a new startup.nsh file in Kubuntu15.10 in the chroot environment with
sudo echo '\EFI\ubuntu\grubx64.efi' > startup.nshgives also no improvement.
I found the solution:
The problem was, that the directory /boot/efi/EFI/ubuntu with the file grubx64.efi doesn't exist.
After booting a Live-CD and changing to the chroot environment, I installed the missing packets and create the needed NVRAM entry with:
sudo apt-get install grub-efi-amd64-signed shim-signed sudo update-grub
- 1