Hello, fellow Tinkerers! Although real life has intruded on my tinkering over the last few months, I’ve managed to squeeze in a small project or two. One of my background projects during this low key period has been testing OpenCore Legacy Patcher (OCLP) on a variety of unsupported MacBooks in my collection, specifically in multiboot arrangements with multiple installations of macOS and Linux. I thought I’d share a few tidbits I’ve acquired along the way through my tinkering and invite others to contribute as well.
Most recently I’ve been testing installations on a MacBook Pro Retina, 15-inch, Mid 2015 (MacBookPro11,5) with a 500-GB SSD. The below represents my outcomes with this MBP, and I intend on trying the same with some older Pros and Airs in my collection soon.
On my 2015 MBP, I am using a single APFS container with multiple versions of macOS, each installed in separate volumes within the single container. By the way, Mr. Macintosh just posted a YT video about multiboot and OCLP where he opted to install multiple macOS versions in separate APFS containers. I’ve been using the single APFS container approach for quite a while to make optimal use of shared free space among the volumes, and have seen no ill effects to date. However, if any of you APFS wizards out there know why separate containers versus a single container is the way to go, please comment below.
My preferred macOS philosophy is to keep an installation of the latest version supported natively as a failsafe, and install one or more later macOS versions via OCLP in separate volumes. Monterey is the latest version of macOS supported natively by the 2015 MBP, so I have it installed in a volume in the APFS container. I installed Ventura and Sonoma via OCLP in separate volumes in the same APFS container as Monterey. I configure OCLP to always show the OpenCore bootpicker, which shows all three installed versions of macOS at boot. Cool.
I wanted to add a Linux distro to the mix, because why not? My preferred distro is currently Linux Mint 21.2. I created a separate partition on the SSD and installed Linux Mint into it, which went smoothly.
My goal was to get Linux Mint to show in the OpenCore bootpicker along with the installed versions of macOS. Here is what I did. Please note that these steps require mounting the EFI partition and making edits to a config.plist file, which if done incorrectly can mess up booting for your Mac. Please don’t do these steps unless you are comfortable with Terminal and unix commands and poking around the EFI partition.
Boot into macOS, mount EFI, and make a backup copy of the config.plist file under /Volumes/EFI/EFI/OC.
For Method A: OpenLinuxBoot -
This method uses OpenLinuxBoot.efi driver, which was added to OpenCore 0.7.3. OCLP 0.3.1 was based on OpenCore 0.7.4, so this and any subsequent version of OCLP should install this driver by default. OCLP 1.2.1 (the version I used) definitely installed the driver. However, this method needs an additional driver corresponding to the filesystem used for the Linux install to make the Linux kernels visible to the OpenCore bootpicker; the following steps are for installing an ext4 driver and checking a few other settings in config.plist.
For Method B: Chainloading an EFI Bootloader, Method 1: Using BlessOverride
This method requires that you know something about your Linux distribution’s bootloader, at least enough to recognize what bootloader your distribution uses and where it lives. There are some hints below, but by no means is it a comprehensive list.
Have any of you experimented with multiboot arrangements with different Linux distros or other OSes? What bootpickers and methods did you try, and what worked well or not well for you? I would love to see your experiences below!
Most recently I’ve been testing installations on a MacBook Pro Retina, 15-inch, Mid 2015 (MacBookPro11,5) with a 500-GB SSD. The below represents my outcomes with this MBP, and I intend on trying the same with some older Pros and Airs in my collection soon.
On my 2015 MBP, I am using a single APFS container with multiple versions of macOS, each installed in separate volumes within the single container. By the way, Mr. Macintosh just posted a YT video about multiboot and OCLP where he opted to install multiple macOS versions in separate APFS containers. I’ve been using the single APFS container approach for quite a while to make optimal use of shared free space among the volumes, and have seen no ill effects to date. However, if any of you APFS wizards out there know why separate containers versus a single container is the way to go, please comment below.
My preferred macOS philosophy is to keep an installation of the latest version supported natively as a failsafe, and install one or more later macOS versions via OCLP in separate volumes. Monterey is the latest version of macOS supported natively by the 2015 MBP, so I have it installed in a volume in the APFS container. I installed Ventura and Sonoma via OCLP in separate volumes in the same APFS container as Monterey. I configure OCLP to always show the OpenCore bootpicker, which shows all three installed versions of macOS at boot. Cool.
I wanted to add a Linux distro to the mix, because why not? My preferred distro is currently Linux Mint 21.2. I created a separate partition on the SSD and installed Linux Mint into it, which went smoothly.
My goal was to get Linux Mint to show in the OpenCore bootpicker along with the installed versions of macOS. Here is what I did. Please note that these steps require mounting the EFI partition and making edits to a config.plist file, which if done incorrectly can mess up booting for your Mac. Please don’t do these steps unless you are comfortable with Terminal and unix commands and poking around the EFI partition.
Boot into macOS, mount EFI, and make a backup copy of the config.plist file under /Volumes/EFI/EFI/OC.
- In Terminal, diskutil list - to identify where EFI is located, typically disk0s1
- In Terminal, sudo diskutil mount disk0s1 - to mount EFI to /Volumes/EFI
- Open a Finder window from the EFI mounted on your Desktop (you do have Finder configured to show mounted drives, right?) and navigate to config.plist - it should be under EFI/OC, or in your Terminal window surf to /Volumes/EFI/EFI/OC
- Make a backup copy of config.plist before trying any of the methods below, just in case
For Method A: OpenLinuxBoot -
This method uses OpenLinuxBoot.efi driver, which was added to OpenCore 0.7.3. OCLP 0.3.1 was based on OpenCore 0.7.4, so this and any subsequent version of OCLP should install this driver by default. OCLP 1.2.1 (the version I used) definitely installed the driver. However, this method needs an additional driver corresponding to the filesystem used for the Linux install to make the Linux kernels visible to the OpenCore bootpicker; the following steps are for installing an ext4 driver and checking a few other settings in config.plist.
- Download ext4_x64.efi from here: https://github.com/acidanthera/OcBinaryData/tree/master/Drivers; if you used a different filesystem for your Linux install, find the corresponding driver and substitute it in the steps below (I only tested the ext4 driver, so your mileage may vary)
- Copy ext4_x64.efi to the Drivers directory under /Volumes/EFI/EFI/OC; verify that OpenLinuxBoot.efi already exists in the Drivers directory. (It should.)
- Edit config.plist in your favorite editor (I used TextEdit in macOS; you can use Xcode in macOS, or nano or pico or vim or whatever editor in Terminal if you like)
- Verify that OpenLinuxBoot.efi exists as an entry in the Drivers section (it did in mine) and add an entry in the Drivers section for ext4_x64.efi (I copied a nearby entry in the Drivers section and edited it); make sure ext4_x64.efi is listed before OpenLinuxBoot.efi, or you might get boot problems (ask me how I know)
- Verify RequestBootVarRouting, LauncherOption, and HideAuxiliary are enabled (they were in mine by default)
- Exit and reboot - in theory, Linux Mint 21.2 (or your particular distribution) should appear in the OCLP bootpicker along with the various flavors of macOS installed previously
For Method B: Chainloading an EFI Bootloader, Method 1: Using BlessOverride
This method requires that you know something about your Linux distribution’s bootloader, at least enough to recognize what bootloader your distribution uses and where it lives. There are some hints below, but by no means is it a comprehensive list.
- Edit config.plist in your favorite editor (I used TextEdit)
- Find the BlessOverride entry under Misc - in my case it was set to \EFI\Microsoft\Boot\bootmgfw.efi, which I believe is the default configuration to dual boot Windows; I did not see this driver contained in the Drivers directory from installation of OCLP, so I figured I could alter this entry with no ill effects
- Look for your Linux distribution’s bootloader under EFI, and change the BlessOverride entry to match your bootloader; some common ones are
- \EFI\arch\grubx64.efi
- \EFI\ubuntu\grubx64.efi (this is what Linux Mint 21.2 uses)
- \EFI\systemd\systemd\systemd-bootx64.efi
- Exit and reboot - an EFI entry representing your Linux install should appear in the OpenCore bootpicker along with the various flavors of macOS installed previously
Have any of you experimented with multiboot arrangements with different Linux distros or other OSes? What bootpickers and methods did you try, and what worked well or not well for you? I would love to see your experiences below!