Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
how do I create a "hybrid"?
Perhaps create a thread and ask there?

Alright here is one problem with ConfigFactory I just found. The reason VMM is not working is because you have the wrong value generated for Cpuid1Data.
There is a bug indeed. The values are generated correctly but then overwritten by a setting added in v063. That is, it worked up to v062. A fix will be in the next release.
 
Last edited:
either or what? Please explain, I am not that knowledgable. What does Windows require? What can I put into my Mac if its all on one drive vs if I am trying to shared a drive with other APFS volumes?



how do I create a "hybrid"?
 
  • Like
Reactions: Dewdman42
I'm not daring enough to use the EFI shell yet. ;-)
but it's fun. If you have RefindPlus, might as well look at the EFI Shell.
First thing you do is type mode to get a list of text modes.
Then type mode x y to change the mode to the one with the most vertical lines.
Then type help for a list of commands.
Then type map for a list of file systems and block devices.
Then type fs0: to chose the first file system (like C drive of Windows)
Then type ls to get a list of files on that file system.
If it has an EFI folder, then it's probably an EFI partition and you can use mkdir to make a directory and cd to change directory, and you can do commands and pipe their output to a file
dmpstore > dmpstore.txt
Then you can boot into macOS, mount the EFI partition, and view the file you created.

Anyway, not sure what you are suggesting to discover with that?
The point is to gather info about your system so you can tell if Windows changes anything important afterward. You can discover what nvram variables it changes, or what boot code it adds to the MBR or PBR.

Dayo has some excellent instructions on that other thread about installing Windows using a VM first to run the Windows installer... the only thing is his instructions involve using a whole drive, rather then a partition on a drive. Which doesn't have to be a big deal, but I read some comments on this forum about people who setup dual boot systems and then at some point a windows updater may have written outside the partition into a boot sector of some and kind of screwed things up. I don't really remember the details of what I read now, but I am just wanting to make sure I don't run into any kind of weird problem like that.

I guess at this point all the drives in my box were partitioned with GUID. So if I have to somehow use MBR, then again, I don't know how I would do that as a FAT partition on one of these, might be better to just buy another drive and format it purely the windows way with MBR and FAT on top. Yea?
A VM is one way to do it. You still want to gather the info about your system before doing the install. So you have something to compare when it's done.

You don't need to change to MBR. You keep GPT and make hybrid MBR/GPT which is the same as GPT except the first block contains boot code to do BIOS boot of Windows, and the first block has a MBR partition table with up to 3 partitions specified (first partition should still by type EE - for EFI but is changed to extend only to the start of the first partition). iPartition.app does this with a couple clicks. Use the dumpvols.sh script before and after you do iPartition, to learn what iPartition does to your disk. iPartion.app cannot resize APFS partition so leave them alone. If you need to resize an APFS partition to create the FAT partition, then use Disk Utility.app to create the new partition. Then use iPartition.app to make the new partition Active and Visible in Windows.

You can't do MBR with FAT. It is either/or. The Apple way is a hybrid partition when installed on the same drive (at least on older macs). When a hybrid parturition is created Windows cannot see the EFI partition. As far as it is concerned it is an MBR drive (even though it is not hence it is called hybrid).
It's a FAT partition on a hybrid GPT/MBR disk. macOS treats it as GPT. Windows will treat it as MBR. Don't do partitioning in Windows. Only use Windows to erase the partition as NTFS (you can tell what partition is the correct one by looking at the size and name).

As mentioned above I'm having issues with the RefindPlus resolution. It looks like it might be 1024x768 or 1280x1024 scaled to fit 16:9 (so stretched laterally/horizontally - optically it all looks fat and wide). Photo attached.

Below is a (partial) RefindPlus log that includes all the info about Graphics, GOP and resolution.

Code:
15:172   0:023  Read Config...
 15:198   0:025  Detected Overrides - Read Config...
 15:250   0:051  Adjust Default Selection...
 15:271   0:021  Initialise Screen...
 15:297   0:025  Check for Graphics:
 15:322   0:024    - Seek Console Control
 15:368   0:046      * Seek on ConsoleOut Handle ...Success
 15:394   0:025    - Assess Console Control ...ok

 15:418   0:024    - Seek Universal Graphics Adapter
 15:443   0:024      * Seek on ConsoleOut Handle ...Unsupported
 15:469   0:025      * Seek on Handle Buffer ...Success
 15:493   0:024      ** Examine Handle[00] ...Success
 15:518   0:024      *** Select Handle[00] @ 640x480
 15:543   0:024    - Assess Universal Graphics Adapter ...ok

 15:569   0:025    - Seek Graphics Output Protocol
 15:618   0:049      * Seek on ConsoleOut Handle ...Success
 15:644   0:025    - Assess Graphics Output Protocol ...NOT OK!

 15:668   0:024  Validate Replacement GOP for ConsoleOut Handle:
 15:693   0:024    - Seeking Firmware GOP Handles ...Success
 15:744   0:050    - Found Candidate Replacement GOP on Firmware Handle[01]
 15:768   0:024      * Evaluating Candidate
 15:793   0:024      ** Valid Candidate : Width = 1280, Height = 1024

 15:843   0:050  INFO: Provide GOP on ConsoleOut Handle ...Success

 15:893   0:049  Query GOP Modes (Modes=5, FrameBufferBase=80000000, FrameBufferSize=0x0):
 15:919   0:025    - Mode[00] ...Success @  1280x1024  ( 1280 Pixels Per Scanned Line, 8bit BGR Pixel Format )
 15:968   0:049    - Mode[01] ...Success @   640x480   (  640 Pixels Per Scanned Line, 8bit BGR Pixel Format )
 16:018   0:050    - Mode[02] ...Success @   800x600   (  832 Pixels Per Scanned Line, 8bit BGR Pixel Format )
 16:068   0:049    - Mode[03] ...Success @  1024x768   ( 1024 Pixels Per Scanned Line, 8bit BGR Pixel Format )
 16:151   0:083    - Mode[04] ...Success @  1280x960   ( 1280 Pixels Per Scanned Line, 8bit BGR Pixel Format )

 16:205   0:053  Set Screen Resolution:
 16:229   0:024    - BestMode: GOP Mode[0] @ 1280x1024
 16:261   0:031    - Switch to GOP Mode[0] ...Success
 16:285   0:024  Screen Resolution Set

 16:310   0:024  INFO: Implemented Graphics Output Protocol

 16:341   0:030  INFO: Implement Text Renderer ...Success

 16:363   0:022  Setup Screen...
 16:410   0:046  Prepare for Graphics Mode Switch:
 16:434   0:024    - HiDPI Not Detected ...Maintain Icon Scale

 16:460   0:025  INFO: Running Graphics Mode Switch

 16:485   0:024  Refresh Screen:
 16:510   0:024    - Get Banner
 16:590   0:079    - Scale Banner
 16:643   0:053    - Clear Screen
 16:675   0:031    - Show Banner

 16:709   0:033  INFO: Switched to Graphics Mode

My GPU is a Sapphire Pulse RX590 8GB - it has a single BIOS (so doesn't have a bios switch). I connect to a Samsung U28E590 28" 4K display via DisplayPort cable with DisplayPort 1.2 setting and with Freesync on. It has a pixel density of 157PPI. I get the same result regardless of which DisplayPort I connect from on the back of the GPU (it has 2x DP).

Does anyone know what I need to change/set in order to get the ratio right for my setup?
Strange that you're not getting any 16:9 modes. Maybe the Radeon EFI driver sucks. But at least you're getting an image. Unless it's using the wrong GOP or UGA on GOP or something weird. In EFI Shell (access from RefindPlus), you can do this command (after setting the current directory to a writable directory as explained above.
dh > dh.txt
dh -d -v > dh_d_v.txt

Edit: script moved to https://gist.github.com/joevt/a99e3af71343d8242e0078ab4af39b6c
 
Last edited:
  • Like
Reactions: JedNZ
Correct. I just did a research on the Bootcamp operation from BigSur in cMP:
 
  • Like
Reactions: Dewdman42
Somehow the latest Mojave security update facked up my BootMgr.. so it is not working anymore.
I have delete it with the uninstall tool. But now everytime when I want to try to start the 'configFactory' it says: Please uninstall Lilu to proceed. I totally not know what to do.. :( Who can help me?

Kind regards,

Mark
 
Thanks for that info. its a lot to digest, but I will. One quick question...

Once I setup a legacy Windows install on a hybrid MBR drive, presuming I decide to do it that way...do you then boot into windows WITHOUT OpenCore? Just use rEFInd's direct boot to the volume without OC in that case?
 
Once I setup a legacy Windows install on a hybrid MBR drive, presuming I decide to do it that way...do you then boot into windows WITHOUT OpenCore? Just use rEFInd's direct boot to the volume without OC in that case?
Correct. OC does not support Legacy Windows.
 
One more thing I want to ask before I forget. As I setup this rEFInd/OpenCore Mac...It is finally occurring to me a couple things:

  1. rEFInd can launch instances of OC or it can directly launch volumes without OC. (check)

  2. When using OpenCore, it does not appear to be straightforward to specify which precise volume I want that one particular OC instance to boot into. It appears that an OC instance will have the possibility to use a different config.plist with potentially different kext injection, etc..but...the "normal" way to use OpenCore is to let it scan all volumes and thne either select the specific volume in OC BootPicker...or depend on the "default"

  3. But the "default" is not something I can configure in rEFInd or OpenCore (right?)..its a global NVRAM parameter that gets specified by using System Preferences to select the startup disk.

So the above leads me to believe that I cannot do what I had hoped to do. I had hoped to setup a rEFInd setup that would have two OC icons for Catalina (with and without VMM), two icons for BigSur (with and without VMM) and then a direct Volume icon that would boot up Mojave (without OC) and a direct Volume icon to boot up Windows (without OC)

that's a nice idea, but as far as I can tell, I'm not sure I can do that because I haven't been able to figure out a way to configure in the OC config.plist, which actual volume to boot to...it is always dependent on the global NVRAM setting.

Right?

So the boot up procedure I guess would always be...select the OC instance I want...and then then also make sure to select the desired OSX volume in the OC Boot Picker menu as a second step... Two boot selections, one after the other, whenever booting to either Catalina or BigSur.

Am I Understanding this correctly or is there another variation on configuration I can look into to try to make this a little more automatic so that if I select a particular OC instance, it will then directly boot the particularly version of OSX that it is setup for?
 
I want to try to start the 'configFactory' it says: Please uninstall Lilu to proceed.
ConfigFactory has detected that you have Lilu, and perhaps others such as Whatevergreen, installed outside OpenCore. As OpenCore would also inject these, having them in place would lead to a conflict and thus, it does not proceed.

You need to uninstall any such potentially conflicting Kext that is flagged by ConfigFactory first: https://www.maketecheasier.com/add-remove-kexts-from-macos
 
  • Like
Reactions: Teachermark01
Try to ensure you know the meanings of terms you use as neither OpenCore nor RefindPlus have anything to do with BootROMs.

Deep breath ... OK.
  1. Shut your computer down
  2. Connect a GPU that can boot into Mac OS natively
  3. Disconnect the physical disk RefindPlus/OpenCore is installed on
    1. Assume you did not install on the same disk as your Mac OS as was advised​
  4. Restart and Hard Reset NVRAM (Hold the OPT + CMD + P + R keys down until the fourth chime)
    1. You may be booted into recovery mode. If so ...
      1. Click on the arrow to move to the next screen
      2. The Apple Icon should appear on the top left of the menu of the next screen
        1. Don't select any of the options in the main window​
      3. Click on the Apple Icon and select Startup Disk from the available options
      4. Select a Mac OS volume and restart
  5. You should be booted into Mac OS on restart
    1. Go into System Preferences
    2. Select a Mac OS Volume and restart from System Preferences
  6. You should be booted into Mac OS on restart
  7. Shut your computer down after logging in
  8. Reconnect the disk from Step 3
  9. Restart your computer and login to Mac OS
  10. Mount the EFI partition on the reconnected disk
  11. Delete RefindPlus and OpenCore
Sorry meant to totally delete/edit/remove all my post
 
  • Like
Reactions: Dayo
question about the RefindPlus configuration being used in MyBootMgr: I notice that there is an overrides dir with override.conf. I can't find any mention about this capability of using a separate override.conf file...anywhere in the docs of rEFInd. Is this an extension built into RedindPlus to use an overrides dir?
 
Look at the "banner_scale" config setting in RefindPlus. It is currently set to "fillscreen" which stretches the background as needed as the provided banner is based on my monitor dimensions.

You can try to change banner_scale to "noscale" which will crop the banner if it too big or show it with a border if it too small. Alternatively, create a banner image that fits your monitor and use this instead. The current banner is in the overrides images folder. (EDIT: Will add this to the "Other Considerations" Section).

To reiterate, In order to use this setup, all users need to familiarise themselves with the configuration settings for rEFInd (for RefindPlus) and with those for OpenCore as if they were separately installing each one themselves (Links are in Post 1 and copies of the documentation for both are provided with MyBootMgr).

This process might generate queries and stuff which should be directed to relevant forums to allow maintaining focus on the actual mechanics of the MyBootMgr process here.

Default is "noscale", but made that setting and no change. Likewise, tried "fillscreen" and no change either.

The banner imagedoesn;t look bad anyway, it's the icons that are skewed.
 

Attachments

  • RefindPlus GUI.jpg
    RefindPlus GUI.jpg
    212.6 KB · Views: 90
  • Like
Reactions: Dayo
Is this an extension built into RedindPlus to use an overrides dir?
It uses the include feature from rEFInd. Take a look at the refind.conf file to see how it is brought in.
There is a page in the rEFInd docs that explains this.
 
Innie allows your PCIe drives to be seen as internal. More info here. As for NVMeFix.kext - I assume if you answer "No" to the question in ConfigFactory it won't include the kext, likewise for RadeonBoost. And I believe AHCI_3rdParty_SATA.kext is for third party SATA PCIe adapters.

question about Innie.kext and AHCI_3rdParty_SATA.kext. Are these needed when using OpenCore `DeviceProperties`?

I am using a Sonnet Tempo SATA SSD card (not NVMie). It has two SSD drives on it.

It has been working with with this setup, until last night one of the drives suddenly disappeared completely from the desktop and from disk utility too. At first I am very worried, oh no..the drive must be bad or something, but now I'm wondering if this is related to OSX thinking its an external drive and somehow getting confused about its connection as an external drive.

Wondering if I should use DeviceProperites configuration in OC (as described by CDF on the OpenCore thread), or this approach as handled by MyBootMgr, with Innie.kext and possibly the 3rdParty kext (I'm not sure exactly).

Any info from anyone that has followed the progression of that situation and knows the current best thing to do is?
 
Wondering if I should use DeviceProperites configuration in OC (as described by CDF on the OpenCore thread), or this approach as handled by MyBootMgr, with Innie.kext and possibly the 3rdParty kext (I'm not sure exactly).
I don't understand what is so confusing about the instructions in the guide.

It says there are two quick and easy options ... Innie or the 3rd party SATA Kext. It says try Innie first and then the latter if Innie does not work and reminds to disable Innie first before.

Alternatively it says, there is a more involved method that is guaranteed to work and explains how to do it including a reminder to make sure the other two are disabled if using this.

Any info from anyone that has followed the progression of that situation and knows the current best thing to do is?
The purpose of the guide is to present the best thing to do.
While not recommended and not supported, you are free as a user to mix and match with stuff from elsewhere although the guide works on its own if followed literally.

However, some will always want to beat their own paths and you just need to know what you are doing if mixing and matching. Suggest referring queries to the sources of those items in such instances.
 
Last edited:
I don't understand what is so confusing about the instructions in the guide.

It says there are two quick and easy options ... Innie or the 3rd party SATA Kext. It says try Innie first and then the latter if Innie does not work and reminds to disable Innie first before.

Alternatively it says, there is a more involved method that is guaranteed to work and explains how to do it including a reminder to make sure the other two are disabled if using this.

I wasn't asking for instructions how to do it, I was asking for an explanation of the difference between using Innie.kext or using OpenCore's DeviceProperties, as described in CDF's guide. I went with the latter and it seems to be working fine, but I would like to understand the pros and cons of this approach vs Innie.kext, for example. My understanding as of now is that Innie.kext is an older approach that perhaps was more useful without OpenCore. But I do not really know how to decide which way is the preferred way to do it..other then presuming for now that CDF's post on the other thread is more current with regards to the best way to set it up.

I am curious also why you chose to handle it that way in MyBootMgr instead of the way that CDF has arrived to on the OpenCore thread? If you know some particular reason why that approach is preferable, then I would still consider it, but I would like to know why.
 
I wasn't asking for instructions how to do it, I was asking for an explanation of the difference between using Innie.kext or using OpenCore's DeviceProperties, as described in CDF's guide. I went with the latter and it seems to be working fine, but I would like to understand the pros and cons of this approach vs Innie.kext, for example. My understanding as of now is that Innie.kext is an older approach that perhaps was more useful without OpenCore. But I do not really know how to decide which way is the preferred way to do it..other then presuming for now that CDF's post on the other thread is more current with regards to the best way to set it up.

I am curious also why you chose to handle it that way in MyBootMgr instead of the way that CDF has arrived to on the OpenCore thread? If you know some particular reason why that approach is preferable, then I would still consider it, but I would like to know why.
I think the best approach is the "built-in" device property. Unfortunately it did not work on the MBP15,1. None of the kexts work there either (BigSur). Next good approach (which worked in BigSur on the MBP15,1) is to go to the bundle identifier and make the device appear internal from external like this:
The idea is to find the identifier in use for the particular device:
1606414777015.png

With the above patch in the Kernel all NVME devices will appear internal. For AHCI devices find:
1606416010406.png

Code:
<key>Patch</key>
        <array>
            <dict>
                <key>Arch</key>
                <key>x86_64</key>
                <key>Base</key>
                <string></string>
                <key>Comment</key>
                <string>IOAHCIBlockStorage Patch#External</string>
                <key>Count</key>
                <integer>0</integer>
                <key>Enabled</key>
                <true/>
                <key>Find</key>
                <data>
                RXh0ZXJuYWw=
                </data>
                <key>Identifier</key>
                <string>com.apple.iokit.IOAHCIBlockStorage</string>
                <key>Limit</key>
                <integer>0</integer>
                <key>Mask</key>
                <data>
                </data>
                <key>MaxKernel</key>
                <string></string>
                <key>MinKernel</key>
                <string></string>
                <key>Replace</key>
                <data>
                SW50ZXJuYWw=
                </data>
                <key>ReplaceMask</key>
                <data>
                </data>
                <key>Skip</key>
                <integer>0</integer>
            </dict>
        </array>
 
Last edited:
I wasn't asking for instructions how to do it, I was asking for an explanation of the difference between using Innie.kext or using OpenCore's DeviceProperties, as described in CDF's guide.
This is a question about the intricacies of the workings of OpenCore and is the type of question users have been kindly requested in the guide in Post 1, as well as directly to you on a few previous examples, to direct to the OpenCore thread in order to keep the noise level here to a minimum and to maintain a focus on the mechanics of implementation in this thread as much as possible.

I am curious also why you chose to handle it that way in MyBootMgr instead of the way that CDF has arrived to on the OpenCore thread? If you know some particular reason why that approach is preferable, then I would still consider it, but I would like to know why.
Use whatever works for you and to dig into details or for an exposition on such matters, please post to the OpenCore thread or create one:

Screen Shot 2020-11-26 at 22.39.19.jpg

Post 1 lays out three ways to achieve this purpose with one of them flagged as being guaranteed to work (Implying the other two may not work). Are you saying you have tried all three and none of them are working? That would be a good example of a relevant post here.
 
Last edited:
I am asking you a specific question about MyBootMgr, it doesn’t make any sense whatsoever to ask that question on the other forum thread. The question is: why did you choose to use the kext injection instead of device properties?

If you don’t know the answer just say so.

On the other thread you lectured me about asking the wrong questions there. In this thread you lecture me about asking the wrong questions here. Meanwhile you choose not to ever answer the question.
 
@startergo thanks for the insight about deviceproperties. Seems to be working so far for me on 5,1 catalina so I’ll stick with that for now unless dayo or anyone can give me specific reason why I would want to do the kext approach. Seems like this probably depends on the hardware you’re using. I don’t know what will happen when I go to Big Sur eventually. Might requiere kext for that, is that why?
 
I am asking you a specific question about MyBootMgr, it doesn’t make any sense whatsoever to ask that question on the other forum thread. The question is: why did you choose to use the kext injection instead of device properties?

If you don’t know the answer just say so.

On the other thread you lectured me about asking the wrong questions there. In this thread you lecture me about asking the wrong questions here. Meanwhile you choose not to ever answer the question.
I am also asking you a specific question which you don't seem to understand.

I repeat it ... There are three methods in the guide. Have you tried the three? Have you even taken the time to consider them? If you did, you would notice that two involve kexts and the third, which involves device properties and is stated as a guaranteed to work method, is basically the same thing as your "cdf" method.

So again ... have you tried all three methods set out in the guide?

Meanwhile you choose not to ever answer the question.
I chose not to answer the question because the question implies you have not read the guide and the question would not come up if you had since the guide does not simply offer kext based methods to the exclusion of device properties as the question suggests.

On the other thread you lectured me about asking the wrong questions there
That is a mis-characterisation of what happened.

You had asked a question there to which I had responded and explained to you that your issue was not related to what you thought it was caused by. I suggested that you do a search for a certain item to give you further insight.

You came back insisting it was but as you had indicated you could not find anything after a search, I took the time to do the search, explained the matter once again and provided you with the search links.

Your response to that was still insistent on your initial assumptions and you had not considered anything that had been explained or even bothered to follow the links provided and it was only then that you got a more forthright response.
 
Last edited:
My understanding is that Innie is a ubiquitous standards approach (kext injection is a “catchall” that will serve most setups without bespoke settings specific to particular hardware setups) while the device properties approach is specifically curated for the particular hardware setup and a moving target and subject to change between reboots if hardware is changed (adding/removing/moving components in PCIe slots or SATA bays). I wouldn’t even know how you could programme the latter into MyBootMgr, so maybe it’s too complex.

I can sense your frustration, however maybe ease off a little. Dayo is working tirelessly with this, and I certainly don’t want him demotivated or distracted, so maybe patience is a virtue. Your question is posed (in more than one place) and someone in the community will answer it if it can be.
 
Your question is posed (in more than one place) and someone in the community will answer it if it can be.
Thanks. I need to chill out a bit myself but I must confess that I am a bit short of patience when after putting a lot of effort into writing up a guide, I get indications that it is not being read.

In this particular instance, the question is framed as if the guide only provides a way to do this using kexts but a cursory glance at it would show that this is not the case. Which leaves me lost as to how the question came to be in the first place.

However, if notwithstanding the guide, the user still wants to understand the differences between using a kext or device properties, this I can understand but would prefer them to point this to the OpenCore thread instead. Others are however welcome to pitch in of course.
 
I certainly don’t want him demotivated or distracted
BTW, you touch on one important item here which I need to think of how to add to the guide.

If I get run over by a bus tomorrow or stop making updates for whatever reason, the codebase for RefindPlus is on GitHub and the current version as it stands can be built by anyone (instructions are there on GitHub and are quite simple).

You can also easily swap in a new release of OpenCore into your current setup directly or for a new starter, run MyBootMgr and then swap in the then current OpenCore.

An important development is that the patch that was needed to create OC_ALT will not be required as from OpenCore v0.6.4. This means that you can copy an "OC" folder and rename as "OC_ALT" and edit the config file as needed.

Does not have to be called "OC_ALT" but the code in the Helper Tools expect that name so using this name will keep everything working as before.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.