While installing macOS specifically Mojave is pretty easy on an actual Mac, but if you are a Windows user, that is not the case. If you are a Windows user who wants macOS for some reasons, however, you can, but there’s a whole lot to do. From finding the right VirtualBox) image to creating a virtual machine and troubleshooting booting problems, there’s a lot of challenges to deal with. Here’s how to Fix UEFI Internal Shell on macOS Mojave on VirtualBox.
One of the problems that most users encounter when installing to boot is the broken UEFI Internal Shell which typically prevents booting machine into the installation process and getting Mojave installed. The Shell usually appears as a bunch of commands without allowing you to skip, continue, or get into the installation except entering commands.
Fix UEFI Internal Shell on macOS Mojave on VirtualBox
Those commands are not understandable and don’t indicate a particular problem so you can’t fix it until you enter the correct commands. There are some reasons and fixes for them. If you have been the chase for one of those errors, look no further than here, here’s how to deal with them. To make things a little easier, we’ve figured out ways from a few different places into a complete step-by-step guide with screenshots. Let’s dive in and Fix UEFI Internal Shell on macOS Mojave on VirtualBox.
Close VirtualBox Completely Before Applying The Code
There are a couple of reasons why this happens. One of the most basic reasons that Fix UEFI Internal Shell on macOS Mojave on VirtualBox appears is not closing the machine app entirely before applying the VirtualBox code. When you create the virtual machine and go to apply the code to VirtualBox on Command Prompt, we have clearly noted you to first close the VirtualBox entirely. If you don’t, there’s a good chance of the problem to show up on the screen.
For anyone who is stuck at Shell, you can probably solve this by creating a new virtual machine from the instructions guide and basically apply the patch command when the virtual machine is completely CLOSED (even from Task Manager). This will definitely help if the problem was due to the reason so make sure you do it next time beforehand.
Boot From APFS UEFI Boot Image
Another reason that many user experience, is due to the Apple File System (APFS) which is not compatible with the virtual machine app whether VMware or VirtualBox. This appears in different styles, typically as EFI Internal Shell or UEFI Shell or after installation when you try to update Mojave, particularly from the App Store. When you download the Mojave update from App Store (which will work), and select the disk to install, the error pop up, indicating “The volume is not formatted as APFS”.
Add APFS UEFI Boot Image
The problem pops because the image is APFS and VirtualBox doesn’t recognize it so you need to download a boot the ISO from the APFS boot image and load a driver from that first then you can boot into Mojave. It can also be updated but when it reboots in the middle of update you should press the F12 key to get back into UEFI Shell where you should select boot.efi of the upgrade image.
This problem is happening to a huge amount of users and unfortunately, I couldn’t reach it real quick. Thankfully, that’s no longer the case, here’s how you do it. However, this problem doesn’t appear on VMware, since VMware supports APFS file system.
To get started, you’ll need the APFS UEFI Boot Image to add the ISO file. To do that, turn off the machine and goto “Settings”.
In the machine settings, select Storage, click on the CD or ISO file. Then click on the CD icon at the top right and click choose Virtual Optical Disk File.
Then browse and choose the APFS EFI Boot Image file and click on Open then click OK on the machine settings.
Now start up Mojave and you will boot into Shell. There, you need to enter the following commands by line one by one.
This will load you into the startup.nsh where you can edit and apply the commands.
Now enter the commands here. When you are done press Commands Ctrl-Q and then press Y.
echo -off load fs1:\EFI\drivers\apfs.efi load fs1:\EFI\drivers\AppleUiSupport.efi load fs1:\EFI\drivers\ApfsDriverLoader.efi map -r fs2: cd System\Library\CoreServices\ boot.efi
In this screen, you will need to type exit, and then hit enter.
Next, you need to hit enter to Continue.
After you continue, the setup process is pretty cut and dry. You will see tons of codes running, they’re fine; just wait. When they finished, ultimately, you will go through choosing your country, setting up a user, and the rest of the initial setup process.
Fix EFI Internal Shell From The User Instruction
If you tried the instructions above and continue to experience the problem, you may want to try the troubleshooting steps. This is the solution from one of the users who had the problem and fixed it with the following move.
I also hit the problem of getting stuck at the UEFI shell prompt when booting from a viable disk (such as my case where MacOS had just been installed in a Virtual Machine).
I was able to fix the UEFI problems as follows (credit to VirtualBox forum):
- At UEFI prompt: Type exit
- You’ll be into an EFI text-mode GUI.
- Select Boot Maintenance Manager and click.
- Select Boot From File and click
You should see two entries in a list (they are cryptic looking PCI bus paths).
The first is the PCI path to a boot partition that isn’t working (corrupted or perhaps has no data or OS installed on it).
The 2nd partition is the recovery partition. The one you need to boot from to do the macOS installation. Or other maintenance/administrative tasks (including accessing Disk Utility to work on the System Volume partition without an OS running).
Click the 2nd entry, you should see (and then click):
macOS Install Data
Then (if present), click
And finally, click:
At that point the installer boot will continue and you should get to the point where you can attempt to repair the volume or [re]install macOS.
Hopefully, this should exit you from the Shell and continue to the installation process.
With that all, a huge shoutout to AwsomeTech10, without whom this was not possible, a big thanks.
Did these methods work for you? Do you know another workaround or solution to resolve this problem? Let us know in the comments down below.