rEFInd not working on MacBook Pro 13" 2019
No, I have never used rEFInd, only that uEFI boot partition for the Macbook Pro 2017 ( ), but also didn't install any OS on an external drive, it was my initial plan but then read somewhere doing that makes things harder so I changed my mind.
In my MBP2019 I was not able to boot into Windows using the uEFI boot partition, I think rEFInd does something similar...so... simply doesn't work...at least for now, the only way I know to make this thing work is by hot-plugging the eGPU on Win10 1903.
If you make any progress on this, please share it, I'm interested on booting windows with the eGPU connected and also on figuring out why I have to try plugging-in-out several times until the system detects the enclosure (windows and mac)
@itsage if you have any news about this setup, please let me know
What was your install process for rEFInd? Once I install it, the only way I can get it to show on boot is if I enable spoofing. However once spoofing is enabled, I am unable to boot back into OS X as the only option available is something with “Preboot”.
The Preboot option is for macOS - because your drive is formatted as apfs. It should work.
To install rEFInd, I created a small partition formatted as FAT on my external USB drive. Named the volume "REFIND". Installed rEFInd to it. Added a disk label and added a rEFInd volume icon. Follow the instructions at: https://apple.stackexchange.com/questions/338574/bless-error-when-installing-refind
They used the volume name BOOTMGR instead of REFIND. You can now boot rEFInd by holding option at startup to use the Mac's Startup Manager.
I used a Mac Mini 2018 for this. Windows was installed using BootCamp to the internal drive, Ubuntu was installed to the USB-C drive. Here's a script to mount all EFI partitions in macOS.
You can add an empty folder to each EFI partition to describe which disk it belongs to. You can add a Volume Icon to the EFI partition containing the Windows boot loader. I haven't figured out how to get grub installed properly so I use rEFInd to boot the Ubuntu kernel directly. I would create a separate FAT partition for each boot loader similar to what I did for rEFInd and avoid the EFI partition so that each boot loader is visible to the Mac's Startup Manager.
Managed to get rEFInd working and booting into OS X. Booting into my external Windows installation however, is throwing an error. The exact same options show up on my Macbook Pro 2016 in rEFInd when I connect my eGPU but it loads Windows just fine.
The only messages it shows are:
Are you able to boot Windows on the external drive using the Mac Startup Manager (hold Option during startup)?
@robert_s So it hangs when you use either rEFInd or Startup Manager and probably hangs if you try Startup Disk Preferences Panel...
You say the same Windows installation boots on the MacBook Pro 2016 but not the 2019?
Does the EFI partition of the external disk contain the Windows boot files (bootx64.efi in EFI/Boot is the same as bootmgfw.efi in EFI/Microsoft/Boot and /EFI/Microsoft/Boot contains BCD and other files/folders)?
The EFI partition of the internal disk does not contain Windows boot files? If not then I wonder if you can copy the EFI Boot files from external disk to the internal disk (as described below at #1).
On my Mac Mini 2018, I see an option called "Windows" in the Startup Manager for my internal BootCamp install. I don't know under what circumstances it would choose that name instead of "EFI Boot" in your case. Maybe you can use the following command to change the name that is displayed in the Startup Manager:
but that won't solve your problem. It creates invisible disk label files in the Boot folder. They are just bitmaps of text to label the boot option in the Startup Manager. You can use the following commands to view the labels:
I tried a couple things on my Mac Mini 2018:
I created a new Windows partition following the instructions for creating the rEFInd partition I posted previously. I copied the EFI/Boot and EFI/Microsoft folders to it, added a disk label and volume icon. With this new partition the disk_label and volume icon are shown in Startup Manager (the same disk_label is ignored on the internal disk's EFI folder because it always shows as "Windows"). This external partition is unable to boot Windows on the internal partition. The Windows logo does not appear - it just hangs at a black screen.
> You say the same Windows installation boots on the MacBook Pro 2016 but not the 2019?
> Does the EFI partition of the external disk contain the Windows boot files (bootx64.efi in EFI/Boot is the same as bootmgfw.efi in EFI/Microsoft/Boot and /EFI/Microsoft/Boot contains BCD and other files/folders)?
I made the efi partition 1GB on the MacBook's internal drive. It's called EFI and contains efi/boot/bootx64.efi. I don't have /Microsoft/Boot or any associated files on either my 2016 or 2019 MacBook.
I didn't do anything to get the labels showing in rEFInd, they just showed automatically. Besides the EFI Boot option that shows up, I also see a legacy bios option which doesn't work on either the 2016 or 2019 MacBook.
BCD is part of the set of Windows boot files that I mentioned. It exists on an EFI partition at EFI/Microsoft/Boot or on a Windows partition at /Volumes/BootCamp/Boot.
For UEFI booting, boot64.efi (or bootmgfw.efi) uses the BCD to find Windows.
For legacy booting, the boot code in the MBR runs the boot code in the PBR (on the Windows partition) which runs bootmgr on the windows partition which uses the BCD to find Windows.
The BCD can be edited by a command line like bcdedit or an app like EasyBCD. You can add other Windows installation partitions to the BCD. bootmgfw.efi or bootmgr is like rEFInd or grub - it can be used to boot other OSs.
Use the script posted previously to mount all EFI partitions and find the BCD. If you use Terminal.app, remove all the indenting tabs first before you paste. Or use a BBEdit worksheet. Or create an .sh file.
Here's a command to find bootmgr and BCD and efi files:
Legacy booting doesn't work without boot code in the MBR and PBR. The MBR should have a partition table that includes the Windows partition marked as active. Use diskutil to get a list of disks.
For each disk, check the MBR with fdisk
and compare MBR partitions with gpt (for hybrid mbr/gpt disks that Apple uses to boot Windows in legacy):
use dd to look for MBR boot code (boot code will be mostly not zeros and may include text for an error message)
and check the PBR for boot code:
It's possible to setup both Legacy and UEFI booting for the same Windows partition.