Haswell ASUS Z97 Big Sur Update and Installation Solved

Haswell ASUS Z97 Big Sur Update and Installation Solved

ASUS Maximus VII Hero Z97, 4790K, RX 580 upgraded directly to from Catalina to Big Sur. Using OpenCore 0.6.3 and latest kexts. Looks like native nvram is going to be a requirement going forward for certain systems.

TLDR Fix your NATIVE NVRAM, emulation won't work.

Problem

Big Sur installer fails after about 20% progress in the Apple logo, fails shortly after disk#: device is write locked ending with apfs_vfsop_unmount. I imagine a new install the same problem occurs because after the first state information on the drive and whatever is stored in the native nvram and the installer can't access something that is not there because it wasn't saved in the first place.

My verbose while doing direct upgrade via system pref and app store

Background

Reddit post here starts to question it as Haswell in general but seemed more an issue with ASUS Z97 boards. A comment in that thread led me to Vit9696 saying fix your NVRAM. All other paths led to devs are aware and it's an macOS bug or giving up and transplanting the installation by using another machine. Well I ain't having none of that, Vit9696 said fix nvram, so I fixed it.

Why

Vit9696 actually solved this for us years ago here. The key take away is the whitelist part and replacing NvramSmi driver.

  1. ASUS APTIO IV Z97 Motherboards

Described here: http://www.insanelymac.com/forum/topic/317802-efi-variable-store-on-aptio-v-haswell-e-and-up/page-6?do=findComment&comment=2535040

After the disassembling it was discovered that several APTIO IV drivers including the presented one implement a variable whitelist, and disallow writing anything but the variables from the list. It is unclear whether it was intentional or just an logical mistake, but a most reasonable solution will be to just replace the NvramSmi driver with the working one from a previous firmware and reflash.

Fix

As stated above we can extract the NvramSmi driver from an older BIOS and the replace it in the latest one. I believe most our boards from this era are no longer being supported but the latest firmwares do have microcode to patch vulnerabilities like Spectre, meltdown, etc. It would be ideal to go this route and it's not that hard and working nvram is great!

I'm guessing another way would be to flash back to old BIOS where native nvram is working and upgrade/install Big Sur and then flash the latest after. You could save your BIOS profile if available that way you won't have to set everything back up. If this is also the case for incremental updates, sounds like a nightmare.

How (I chose to fix)

Replacing the NvramSmi driver made the most sense and it was relatively easy. I am no expert and you know the responsibility I take in anyone trying this shit and failing, ZERO.

To find a BIOS version before the whitelist was added to the NvramSmi driver I used the dates from the link in Vit9696's quotes. User 314TeR said his ASUS Maximus VII Impact nvram broke after 0412 which was released 2014/10/17 and worked with 0217 released 2017/07/28. To me anything after 2014/10/17 will have added the whitelist.

So with my board I downloaded version 1104.

Download UEFITool 0.26.0 as the latest versions won't let you rebuild/replace.

Download latest BIOS and one without whitelist.

Load older BIOS in UEFI tool, my case 1104. Search with text nvramsmi and extract as is, the file section. Like below. Save the ffs, name it whatever and close out we are done here.

Extract as is

Load the latest BIOS now, 3503 in my case and search nvramsmi again. This time replace as is and select the ffs you just named and saved.

Replace as is

You can't flash the modified BIOS as usual, they are capsules with write security. I just used my board's USB Flashback Utility. Named the modified BIOS to M7H.CAP, each board will have it's on naming method. Copied to a fat32 usb, stuck it in the correct USB port in the back and pressed the button for 3 seconds. 2 minutes later and I was booting my modified BIOS and restarted the upgrade process again from within macOS.

If you don't have USB Flashback Utility, take a look here for alternative ways.

Edit: Wanted to add a couple things.

After BIOS modified flash test your nvram, mine worked right away. Then I tried the upgrade and that worked fine. I believe it was 4 phases total and 3 reboots. Took about 25 minutes on SSD.

submitted by /u/blazinsmokey
[link] [comments]