For testing purposes, I have a VM in VirtualBox currently runnning macOS 10.12 Sierra. Now that macOS 10.13 High Sierra is in Beta, I wanted to upgrade my VM to this new release. However, this proved to be difficult with the usual ways. This blog post will describe how to upgrade a Sierra VM to High Sierra.
The problem preventing the upgrade appears to be the boot sequence in VirtualBox. It looks like the EFI implementation of VirtualBox does not honor the way macOS wants to select the startup disk/volume/startup script or in whatever way that is actually supposed to work. The result is that you can click through “Install macOS 10.13 Beta.app”, but after the restart the old system comes up as if nothing happened.
Follow these steps to get around this problem:
- Boot the VM normally in VirtualBox.
- Open “Install macOS 10.13 Beta.app”, click through until you get to “Restart”.
- As soon as the screen turns black, start to hammer the
F12key. Make sure your keyboard is grabbed by the VM.
- If you managed to hit
F12at the right time, the VirtualBox EFI should pop up. If the VM starts up normally, go back to step 2.
- Now use your arrow keys to select Boot Manager and hit Return, then launch the EFI Internal Shell from there.
- Inside the shell, type the following commands:
Shell> fs1: FS1:\> cd "macOS Install Data" FS1:\macOS Install Data\> cd "Locked Files" FS1:\macOS Install Data\Locked Files\> cd "Boot Files" FS1:\macOS Install Data\Locked Files\Boot Files\> boot.efi
With the last command, the system should continue booting. After a short moment, the installer will turn up and begin to upgrade your system from macOS 10.12 Sierra to macOS 10.13 High Sierra. Now you will have to wait for the macOS Installer to finish, which may take a while.
In case VirtualBox crashes with “Guru Meditation: VERR_IEM_INSTR_NOT_IMPLEMENTED” on the login screen when booting the new system, update to the latest VirtualBox test build, which implements the missing instruction.
This post was inspired by another blog post documenting similar instructions on how to enter the macOS Recovery in VirtualBox. For completeness and archival purposes, you can use the following EFI commands to boot macOS Recovery:
Shell> fs2: FS2:\> cd com.apple.recovery.boot FS2:\com.apple.recovery.boot\> boot.efi