I have successfully installed macOS High Sierra, Windows 10, and Ubuntu 20.04 on MacBook Pro Late 2011, and there were some challenges worth noting down.
Formatting the disk
When booting into recovery mode to format the disk, the installation USB used must be of an OS X (Mavericks, for my case), not a macOS (newer version). I once booted into recovery mode using macOS High Sierra installation USB to format the disk with GUID Partition Map scheme, and then I was unabled to install Windows 10 through VirtualBox. I got the error message "The selected disk is of the GPT partition style." when selecting a partition to install Windows on.
This is because I tried to install Windows using legacy mode and then Windows required a MBR disk, but it was GPT disk. However, when I booted into recovery mode using OS X Mavericks installation USB instead to format the disk with GPT Partition Table cheme, the error message was gone. Why? because the disk was hybrid MBR, not pure GPT, and so Mac OS saw it as GPT but Windows saw it as MBR. As Windows did not support EFI mode at that time, Apple used hybrid MBR to allow users to install Windows on its machines that used EFI boot.
Partitioning the disk
The disk must be partitioned as needed before installing any OSes on it or one of the OSes won't boot after the partition is resized or a new partition is created.
At first, I didn't do that. After installing macOS High Sierra and Windows 10, I created another partition from the Windows 10 partition and then Windows stopped booting. It's because of the OS's boot entry is missing from the MBR, and I don't know why but this post claimed to fix that using a third-party tool. Unfortunately, I've never succeeded.
Ordering the partitions
In my case, I have 5 primary partitions:
- EFI system partition
- macOS
- Windows
- DATA
- Linux
The first partition was hidden and created automatically by DiskUtility so I shouldn't have mentioned it but this is to show that the DATA partition must be the fourth partition so that it would appear in File Explorer (as I wanted) when booting into Windows. If it was the last one, it wouldn't show up. This is because the disk was MBR to Windows and so it could have only four primary partitions. Windows recognized only the first four partitions and ignored the rest so Linux partition was treated as unallocated space (this can be checked in Disk Management).
In DiskUtility (of OS X Mavericks), the first partition is graphically on top. Since the EFI system partition is not visible in DiskUtility, the macOS partition is on top instead.
Installing Windows using BIOS legacy mode without CD-ROM
Since my CD-ROM drive stopped working a long time ago, I couldn't install Windows with Boot Camp Assistant because my machine, by default, only looked for Windows installation files from the CD-ROM drive but it couldn't find it.
When I forced the machine to look for the Windows installation files from a USB drive (by holding down the Option key while it's starting), it worked but Windows was installed using EFI mode instead, and the problem with EFI mode is the external monitor is not detected on Windows. This problem only happens on my Mac model, not the newer ones.
Everything worked fine when installing Windows using BIOS legacy mode, and the workaround was installing it through VirtualBox. I noted it down here.