New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
OpenCore Appears to "Take Over" Boot Process #847
Comments
You cannot bless two programs at the same time. Blessing refind when started from OpenCore will only mark it as the default OS for OpenCore, which it may not even find. To get refind booting you will have to bless it when not running OC. I don't know what you are trying to do, but things like refind are not supported in the first place. If you need a UI, why cannot you use OpenCanopy (we are aware it is still not fully powerful)? |
Thanks for the response.
I can confirm to you that what I called What I am finding is that once OenCore has been run once on a system, it appears to leave something that runs on all subsequent boots and takes control of the boot process. Can you see the issue with this? Basically, having run OpenCore for a while and liking it but wanting to go back to Refind for the time being (specific reasons are not relevant here) I can't do this. Also, best to go get distracted by Refind as that is just a specific here and best to describe the issue in general terms.
This behaviour should not be the case but it is and that's the issue. Please don't hastily dismiss this report as invalid. It is not a matter for supporting Refind etc but one of:
|
Well, let me summarise what happens really, because you really miss the idea, and fail to interpret the documentation.
To make it simple, once OpenCore is loaded with Therefore, to make anything bypass OpenCore you need to effectively run your firmware Boot Picker before OpenCore loads and use CTRL+Enter on the entry you need or disable I hope you see now that pretty much what you posted is not really valid, and that there is no bug anywhere here. I can still answer the questions if there are more, but what I have just written is clearly explained in OpenCore reference manual, and it is strange that you confuse it that badly. |
Thank you very much for taking the time to clarify. Really appreciated. I apologise for my limited knowledge and perhaps very much mixing things up. I will go back and look over everything carefully but will just summarise what I have OBSERVED while noting the very clear explanation of the process you have kindly provided. This is after countless reboots doing elimination by substitution to narrow things down.
My inference on WHY that is happening is clearly wrong/invalid as you have explained but it DOES happen.
Is this a once and for ever effect? I think the answer is most likely "No" but it fits in exactly with what I am OBSERVING. Basically, I had initially run OpenCore for several weeks (Since 0.5.6) with RequestBootVarRouting enabled. Then, I also enabled RequestBootVarFallback for a while until I realised it was the reason for Kernel Panics which disappeared once it was disabled. I then later decided to disable RequestBootVarRouting and the config sits there with this disabled. I have since decided to temporarily go on an alternative route but OpenCore is still appears to be my default and persists through NVRAM resets. The only way to remove it is to make sure the OpenCore location can't be found on boot, go into the Apple Recovery and select a start disk there. After this is done, The apple start disk is used and there is no sign of OpenCore anymore. If I bless OpenCore at any point afterwards, even with the --nextonly" flag, it will handle all subsequent reboots until it is disabled by selecting a start disk from Apple Recovery. I understand that this may not fit into how things should be but it is was is observed. Maybe at some point when things are a bit quieter, it could be tested on your side to see if it is actually happening even if not expected to be so. I will recheck a few things here in the interim. So far, I have found that I can get Refind to boot without interference from OpenCore if I bless it with the "--nextonly" flag. This fits with the general observation as sudo Thanks again and looking forward to your improvements to OpenCore. |
I read what you posted, and I think I understood what you observe. I believe I have several hints to you, which may help to understand what is going on.
All in all I suspect that you fail to bless rEFInd properly, and all the other things fail to give you the right hint that it failed and why it failed. This is not unlikely with how convoluted and unobvious This is very unlikely, but I believe I should still mention it just in case. It may not necessarily be your fault at using bless, but that your Mac could fail to bless things when it is booted from OpenCore (with |
"Something not valid was blessed (i.e. written to boot options, be they firmware or OpenCore depending on how you loaded the os)." |
I do not believe OpenCore removes any boot option, so I am afraid that is your firmware going mad. CC @Download-Fritz |
OK. I have managed to find out what was wrong. Very sorry for turning this into a support forum. The critical information you gave to investigate what was looking like a Boot Coup orchestrated by OpenCore was:
Upon using this on three bless setup cases, the issue became apparent. CASE 1: Normal OSX Drive as Startup DiskDEBUG OUTPUT$ sudo systemsetup -getstartupdisk TIMESTAMP currentBootDevice: being checked by DiskManagement NOTESThe last line is what is echoed out to terminal ... All well and good CASE 2: UEFI Application BlessedDEBUG OUTPUT$ sudo systemsetup -getstartupdisk TIMESTAMP currentBootDevice: being checked by DiskManagement NOTESThe last line is what is echoed out to terminal. Bless Command: However, note that the boot device is Example of such default is So basically, in order to use Refind as I wanted, I have to put it into, and bless it from, a separate location from OpenCore. I have done this and everything is working as expected. Bless presumably checks the standard locations finds nothing suitable and picks up my specified target file. Strange behaviour but I think that is what happens. As mentioned earlier, when I bless Refind with the CASE 3: UEFI Application Blessed as "NextOnly"DEBUG OUTPUT$ sudo systemsetup -getstartupdisk TIMESTAMP currentBootDevice: being checked by DiskManagement NOTESThe last line is what is echoed out to terminal. Bless Command: Basically identical output to the first case. Not sure how it ends up picking up the target without going blundering into OpenCore in ConclusionThis was not so much a Boot Coup by OpenCore as much as leaving the gate to the Presidential Palace unlocked. SolutionKeep OpenCore in a separate EFI Partition from any non standard UEFI Applications you want to bless. The same applies if running both from HFS volume such as /Volumes/VOL_NAME/EFI Thanks @vit9696 and sorry for taking your time on this. |
Makes some sense. I guess on Apple hardware AppleBootPolicy (predefined list of paths and FS attributes) is more important than custom blessed entries. Perhaps it is a bit unintuitive and tricky. |
Very Bad Idea ... Avoid. |
Strange, but when I boot with option key bypassing OC:
I never get |
This is from within OC:
|
INTRODUCTION
Hello,
First off, thanks for the great work done on OC. It has really helped a lot of us on legacy Apple products such as my Early 2008 MacPro.
I wanted to raise a issue which is technical in nature hence the post here.
Excuse me but I don't know that much on C prorgramming and everything I will outline is based on surmising from observations and tests.
OBSERVATIONS
It appears that OC is made up of two broad parts (my own simplistic terms below):
OC Bootstrap
OC Main
From what I can surmise,
OC Bootstrap
does the following when my machine is booted:OC Main
and survives NVRAM resetsRequestBootVarRouting
istrue
, it appears to loadOC Main
RequestBootVarRouting
isfalse
, it appears to check if there is a defined startup diskOC Main
REQUEST
If my summation is broadly correct, can you please consider making it such that the last situation is changed for it to hand things over to the Operating System and let this deal with the situation instead of defaulting to loading
OC Main
if possible?JUSTIFICATION
The reason is that currently, having run OC for a while and deciding that I want to change to Refind for various reasons but still want to have OC on my system for various reasons again, the process of blessing Refind results in there not being a defined startup disk ...
sudo systemsetup -getstartupdisk
returns(null)
When I boot in the expectation that Refind would be loaded, it appears that
OC Bootstrap
kicks in, finds there isn't a startup disk defined, and proceeds to loadOC Main
... basically taking over things in an unexpected/undesirable way.CONCLUSION
I may of course be totally off base in my surmising but the effect of OC launching when another items is blessed with the intention of booting that instead of OC is observed.
Thanks!
The text was updated successfully, but these errors were encountered: