I might be wrong, but I thought that emulated NVRam couldn't possibly work in an install/update procedure, because the method used for saving NVRam is a script, executed on shutdown:
View attachment 498095
This works OK with a normal day-to-day usage of macOS, because whenever you shutdown that script will run and save the current contents of NVRAM to nvram.plist.
But in an update/install scenario, that script will never execute. Therefore NVRAM will never be saved to nvram.plist?
I do have an idea for a theoretical workaround for enabling non-NVRAM X299 users to update/install:
- Someone with working NVRAM could do an upgrade or install
- After each reboot during the process, they check the current contents of NVRAM, and make a list of any new or changed NVRAM variables
- Someone with broken NVRAM could then try to do an update/install via the following method:
- Start the install normally for the first stage
- At the first reboot, edit config.plist and add any NVRAM variables that should be present at this stage
- At the second reboot, edit config.plist again if there are any new/changed NVRAM variables expected at this point
- Repeat for each reboot
In theory - and it's only theory at the moment - this would allow the install/update to work, because config.plist would be used to manually provide all the expected NVRAM variables, at the right time.
It would be a bit inconvenient editing config.plist multiple times for multiple reboots, but it might still be quicker and easier than having to do the update on a completely different system. And for people who don't have a second hack or real Mac, this might enable them to do the update/install.
I have confirmed that I am able to list all EFI variables by booting from an Ubuntu USB stick. So I do have a way to record what variables are present, and their current values.
When I have time, hopefully later today, I will try a Big Sur install or upgrade and will record the variables at each stage of the process, and see if I can find variables being added or changed. If so, I'll see if I can prepare some config.plist files that a non-NVRAM X299 user could test an install with.
Of course this is no replacement for properly working NVRAM. But it might get some X299 users on Big Sur until a way is found to get NVRAM properly working on X299.