rEFInd not working on MacBook Pro 13" 2019
 
Notifications
Clear all

rEFInd not working on MacBook Pro 13" 2019  

 of  3
  RSS

Sebastian
(@sebastian_stawecki)
Active Member
Joined: 2 years ago
 

@robert_s

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

HP Omen Accelerator + RX 580 + Macbook Pro 13" 2017 no-touchbar 128gb
HP Omen Accelerator + RX Vega 56 + Macbook Pro 13" 2019 i5-8279U

 
2019 13" MacBook Pro [8th,4C,U] + RX Vega 56 @ 32Gbps-TB3 (HP OMEN Accelerator) + macOS 10.14.5 & Win10 [build link]  


ReplyQuote
joevt
(@joevt)
Noble Member
Joined: 3 years ago
 
Posted by: @robert_s

@itsage

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.

for slice in $(diskutil list | sed -nE '/^ *[0-9]+: +EFI .* (disk[0-9]+s[0-9]+)$/s//\1/p'); do
	mountpoint=$(mount | sed -n -E "/\/dev\/$slice on (.*) \(.*/s//\1/p")
	if [ -z $mountpoint ]; then
		i=0
		startmountpoint=/Volumes/EFI
		mountpoint=$startmountpoint
		while [ -d $mountpoint ]; do
			((i++))
			mountpoint=$startmountpoint$i
		done
	fi
	if [ ! -d $mountpoint ]; then
		sudo mkdir $mountpoint 2> /dev/null
		sudo mount_msdos /dev/$slice $mountpoint
	fi
done

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.

Mac mini (2018), Mac Pro (Early 2008), MacBook Pro (Retina, 15-inch, Mid 2015), GA-Z170X-Gaming 7, Sapphire Pulse Radeon RX 580 8GB GDDR5, Sonnet Echo Express III-D, Trebleet Thunderbolt 3 to NVMe M.2 case


ReplyQuote
Robert S
(@robert_s)
Active Member
Joined: 1 year ago
 

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.

 IMG 0377
This post was modified 1 year ago

MacBook Pro 13" 2019


ReplyQuote
joevt
(@joevt)
Noble Member
Joined: 3 years ago
 

@robert_s On my Mac Mini 2018, I choose "Boot Microsoft EFI boot from EFI" on internal drive and it works. I haven't tried external before (except for Ubuntu).

The only messages it shows are:

BCMDHD_ExitBootService: ENTER
dhd_os_wifi_platform_set_power: Settingwl_reg_on to 0 succeeded
dhd_os_wifi_platform_set_power: Settingwl_reg_on to 1 succeeded

Are you able to boot Windows on the external drive using the Mac Startup Manager (hold Option during startup)?

Mac mini (2018), Mac Pro (Early 2008), MacBook Pro (Retina, 15-inch, Mid 2015), GA-Z170X-Gaming 7, Sapphire Pulse Radeon RX 580 8GB GDDR5, Sonnet Echo Express III-D, Trebleet Thunderbolt 3 to NVMe M.2 case


ReplyQuote
Robert S
(@robert_s)
Active Member
Joined: 1 year ago
 

@joevt

The Mac Startup Manager shows me “EFI Boot” but it seems to hang at the Windows logo. 

MacBook Pro 13" 2019


ReplyQuote
joevt
(@joevt)
Noble Member
Joined: 3 years ago
 

@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:

bless --folder /Volumes/EFI/EFI/Boot -label 'Windows 10'

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:

dump_label () { contents=$(xxd -p $1 | tr -d '\n'); echo ${contents:10} | sed -E "s/(..)/\1 /g;s/00/../g;s/ //g;s/(.{$((0x${contents:2:4}*2))})/\1_/g" | tr "_" "\n" ; }
dump_label /Volumes/EFI/EFI/BOOT/.disk_label
dump_label /Volumes/EFI/EFI/BOOT/.disk_label_2x

I tried a couple things on my Mac Mini 2018:

#1)
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.

Mac mini (2018), Mac Pro (Early 2008), MacBook Pro (Retina, 15-inch, Mid 2015), GA-Z170X-Gaming 7, Sapphire Pulse Radeon RX 580 8GB GDDR5, Sonnet Echo Express III-D, Trebleet Thunderbolt 3 to NVMe M.2 case


ReplyQuote
Robert S
(@robert_s)
Active Member
Joined: 1 year ago
 

@joevt

> You say the same Windows installation boots on the MacBook Pro 2016 but not the 2019?
Correct.

> 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.

MacBook Pro 13" 2019


ReplyQuote
joevt
(@joevt)
Noble Member
Joined: 3 years ago
 

@robert_s

Where is the BCD?

Mac mini (2018), Mac Pro (Early 2008), MacBook Pro (Retina, 15-inch, Mid 2015), GA-Z170X-Gaming 7, Sapphire Pulse Radeon RX 580 8GB GDDR5, Sonnet Echo Express III-D, Trebleet Thunderbolt 3 to NVMe M.2 case


ReplyQuote
Robert S
(@robert_s)
Active Member
Joined: 1 year ago
 

@joevt

What’s that?

MacBook Pro 13" 2019


ReplyQuote
joevt
(@joevt)
Noble Member
Joined: 3 years ago
 

@robert_s

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:

find /Volumes/*/bootmgr /Volumes/*/Boot /Volumes/*/EFI \( -iname bootmgr -or -iname BCD -or -iname '*.efi' \) -exec ls -l {} \;

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.

diskutil list

For each disk, check the MBR with fdisk

sudo fdisk /dev/disk0

and compare MBR partitions with gpt (for hybrid mbr/gpt disks that Apple uses to boot Windows in legacy):

sudo gpt -r show -l /dev/disk2

use dd to look for MBR boot code (boot code will be mostly not zeros and may include text for an error message)

sudo dd if=/dev/rdisk0 count=1 2> /dev/null | xxd

and check the PBR for boot code:

sudo dd if=/dev/rdisk0s2 count=1 2> /dev/null | xxd

I don't know if Legacy booting is a good idea for new Macs. My old Mac Pro 2008 uses legacy booting for Windows. My new Mac Mini 2018 uses UEFI to boot Windows.

It's possible to setup both Legacy and UEFI booting for the same Windows partition.

Mac mini (2018), Mac Pro (Early 2008), MacBook Pro (Retina, 15-inch, Mid 2015), GA-Z170X-Gaming 7, Sapphire Pulse Radeon RX 580 8GB GDDR5, Sonnet Echo Express III-D, Trebleet Thunderbolt 3 to NVMe M.2 case


ReplyQuote
 of  3