Does replacing internal storage cause EFI updating problems?

Recent versions of macOS – High Sierra and Mojave – have continued to support many older models, which is good. But as those models have aged, they have increasingly been fitted with replacement internal storage. Users with Macs which no longer have their original Apple-supplied internal drives are reporting an unfortunate problem: although they can upgrade to those newer versions of macOS, concomitant EFI firmware updates often fail.

Several of you have reported these problems, commonly in response to my listing of EFI firmware versions. One, DaFoxE1, has suffered this repeatedly on his MacPro6,1, and there are other examples there on iMacs and MacBook Pros.

Inevitably, Apple seems silent on such issues, simply stating that EFI firmware updates are now part of macOS System Updates, and not provided separately. So you’d expect installing the latest Combo updater would be guaranteed to bring the EFI firmware fully up to date. But it not infrequently fails to.

What’s even more odd about this is that Apple has recently invested a lot of engineering effort into bringing EFI firmware more consistently up to date. This was after recognising that firmware versions had fallen into disarray, with many Macs running long-obsolete firmware, as publicly demonstrated in a pioneering study by Duo Labs. Apple attempted to address this in High Sierra, when it included the tool eficheck, which runs automatically every week and checks whether your current EFI firmware is the latest. Unfortunately, even though System Information reports EFI firmware version, as Apple has never provided an official list of current versions for each model, users don’t know whether their firmware is up to date or not.

The plot thickened with the release of the first Macs containing T2 chips, which were and remain embarrassingly incompatible with eficheck. This grew more opaque in October last year, when macOS 10.14.1 brought a firmware update which changed the version numbering system completely. With this, Apple had finally managed to subvert its own efforts to clean up the firmware in Macs, and get them all running the current version.

At present, then, Apple has no accessible list of official EFI firmware versions, system updaters which sometimes don’t perform expected firmware updates, an EFI checker which only works on models which don’t have a T2 chip, and no user tools for forcing a Mac to be updated to the current firmware version. So what can you do if your Mac’s firmware appears to be out of date?

First, you should check that your boot disk has the correct volumes available. This isn’t particularly obvious in Disk Utility, which pretends that they don’t really exist, because they’re not mounted and users shouldn’t be tempted to fiddle with them. This disguises potentially dysfunctional startup disks, so the best solution is to open Terminal and type
diskutil list internal

You should then see something like
volumelayout

This demonstrates that the internal disk has four APFS volumes named Macintosh HD, Preboot, Recovery, and VM. In Catalina, there should be five volumes, with the additional one being Macintosh HD-Data according to the new scheme with its read-only system volume. If your internal storage lacks those, then you’ll need to back it up thoroughly and re-format it, preferably using a bootable USB installer.

If your Mac has those, consider installing the firmware update which first used the new version numbering system, macOS 10.14.1, then the current Combo updater after that.

If your problem persists and your Mac is still using an out of date EFI firmware version, it needs to be assessed at your nearest Genius Bar, where someone might be able to do what we’re no longer trusted to do on our own.

Your Mac’s current EFI firmware version is shown in the Hardware item of System Information, and in LockRattler. I maintain an unofficial list of current versions for all reasonably recent models, secrets which Apple doesn’t feel it can share with us. Expect these to change with EFI firmware updates in the next week or so.

I’d really love to hear from anyone who has suffered this problem and found a solution other than getting it fixed in a Genius Bar, please.