Ny way to manually bless firmware when main disk is external

efifirmwaresoftware-update

My iMac (mid 2010) keeps pestering me to upgrade my EFI firmware to 1.8. Sadly, no matter how many times I try to to upgrade the EFI (from the manual install, or the auto update), it does not seem to go through and asks me again at the next reboot.

The main reasons seems to be that I am running Mac OS X on a completely external disk (firewire); I am reserving the internal disk for Windows. I believe it’s the reason for my trouble since you can find many people have similar problems when they are running os x from a second internal disk (usually when they replaced a MacBook or iMac SuperDrive by an SSD drive).

Searching on the internet, I found a couple of resources that seem to indicate that manually blessing the firmware is possible. For instance this one; note their solution is for a slightly different problem, where installing Ubuntu messed up with EFI, but everything is running from the main disk.

I downloaded the firmware, extracted the relevant file (IM112_0057_01B_LOCKED.scap), and tried—unsuccessfully—to manually push the update.

I am not quite sure how bless works, nor where the efi update is supposed to live (i am surprised that it seems to live on the disk, not on the computer itself, but I could be misunderstanding the way EFI works).
I tried:

sudo bless -mount / -firmware blabla.scap
sudo bless -mount /Volumes/Main -firmware blabla.scap
etc…

No success! If anyone who better understands EFI / the bless command can help me out, I would be super grateful.

I can share the output of the --verbose command if it is helpful.

Best Answer

To answer some of your questions:

  1. The firmware is stored on main board. However, when updating firmware, the EFI system partition is used as a staging area.

  2. After serval testings, it seems that Mac only recognizes the EFI partition at primary internal disk as a staging area (note: at least not working at the optical bay of my mac or at any external drive). So, if you only got an external disk or there is no ESP in your primary internal disk, that would be mission impossible, at least not the bless command could get it done.

  3. To solve your issue, you may try the following steps if your internal disk has a EFI system partition:

    1. boot the machine wish macOS
    2. use bless command to prepare firmware update, including write scap file onto ESP.
    3. make sure the scap file is on the ESP of internal disk. otherwise create one by copying it from ESP of external disk.
    4. restart the machine. Hopefully, the upgrade will be processed.

    or

    1. backup your Windows
    2. install High Sierra on the internal disk so that the firmware will be upgraded to latest one, or format the internal disk as GUID partition table (so that there will be a ESP on that disk for updating firmware), then use bless command to upgrade the firmware manually. note: strong recommend with --verbose and --recovery options.
    3. restore Windows

    or

    I'm not sure is your mac be able to replace the internal drive with the external drive easily. If yes, I believe the fastest way is replacing the internal drive with your external drive temporarily to get the upgrade done.