Note: The OP has reported that this procedure initially failed to work on a 2015 MacBook Pro. However, if you read the comments, the OP eventually successed. The procedure does work on my 2013 iMac.
I am not sure I understand exactly how VirtualBox works, but I have always assumed the hardware was virtual. Therefore, if a particular operating system would run on one machine, then it should run on any machine where VirtualBox is installed. I suppose there are certain obvious limitations due to machine hardware, such as:
- The amount of physical memory.
- The physical number of cores.
- The speed of the USB ports.
- Whether the processor is 32 bit or 64 bit.
- The amount of drive space available.
- The speed of processor, memory and logic (mother) board).
The reason I bring up this issue is that I have a 2013 iMac that can run Yosemite, but I would prefer to run High Sierra. Unfortunately, I also have software (such as Adobe CS5) that does not work well with High Sierra. I have found it to be relatively trivial to install Yosemite as a guest in VirtualBox. The instructions are based on website OS X on OS X. These instructions also state that newer Macs have to fake the processor in order to run Yosemite. Since I do not have a newer Mac, I can not test to see if this is true. So, you will have to try the instructions for yourself.
Before anyone complains, according to the SOFTWARE LICENSE AGREEMENT FOR OS X YOSEMITE this is legal to do.
To be complete, I have repeated the instructions below. Just so you know, the file
Yosemite.dmg, that is created below, should be inserted into the virtual optical drive.
- Install OS X.app purchased in Mac App Store
‑ Operating System Version: Mac OS X (64 bit)
‑ Base Memory: 2048 MB (larger is better)
‑ Enable EFI
In the lastest VirtualBox, all the default settings work well.
Some people encountered black screen upon booting the virtual machine. They reported that changing the default chipset ICH9 to PIIX3 fixes this issue.
Prepare Install Disk
gem install iesd
iESD requires ruby-1.9.2 or later.
Yosemite & Mavericks
InstallESD.dmg is not bootable. Therefore, we need to create a bootable install disk with
iesd -i /Applications/Install\ OS\ X\ Yosemite.app -o Yosemite.dmg -t BaseSystem
All Macs using Intel Haswell CPU (Macs after 2013) need to fake their CPU as Ivy Bridge in order to boot the virtual machine. Thank @danmccombs for this tip.
VBoxManage modifyvm <vmname> --cpuidset 00000001 000306a9 00020800 80000201 178bfbff
On Mac Pro Early 2009 and other Macs that have ECC memory,
AppleTyMCEDriver.kext will cause a kernel panic during the boot. Thus we need to remove it.
iesd -i /Applications/Install\ OS\ X\ Yosemite.app -o Yosemite.dmg -t BaseSystem --uninstall-extension AppleTyMCEDriver.kext
Finally, I have included instructions for setting the screen resolution. You can only change the resolution while the virtual machine is powered off. To set the horizontal and vertical (
HxV) resolution for virtual machine named
VM name, enter the commands given below.
VBoxManage setextradata "VM name" "CustomVideoMode1" "HxVx32"
VBoxManage setextradata "VM name" VBoxInternal2/EfiGraphicsResolution HxV
For example, to set the horizontal and vertical resolution to
1824x1026 for the virtual machine named
Yosemite hosted by an iMac (21.5-inch, Late 2013), you would need to enter the commands given below.
VBoxManage setextradata "Yosemite" "CustomVideoMode1" "1824x1026x32"
VBoxManage setextradata "Yosemite" VBoxInternal2/EfiGraphicsResolution 1824x1026
Note: The main display of an iMac (21.5-inch, Late 2013) has a maximum resolution of