Goal is updating a NVMe SSD firmware on a Mac without optical drive via USB stick that should contain a minimal Linux, flasher and payload.
That works. No errors shown.
What then doesn't work is booting a MacBook Pro 2015 from that stick.
The external USB-drive never shows up in the boot menu.
What I tried:
- erasing the sticks a few times with DiskUtility
- partitioning the sticks to either MBR or GPT
- 3 different sticks
- different laptops (Mac & Windows)
- writing the iso file with
dddirectly to the stick (and in another round using Balena etcher and universal usb installer)
- different versions of DiskUtility (Sierra and Mojave)
- Windows on-board tools on a PC for re-formatting the sticks
- gparted and fdisk mkfs.vfat on a Linux machine
- using a different iso (not matching the target device) from the vendor site (works without any issues according to instructions, but can't update my device…)
- writing to customer support (answer: "iso looks good, should work, please try again")
- booting a fresh virtual machine on a Mac host with just the needed iso attached. Frustratingly, that indeed boots as intended, but can't update the device either. Neither a Windows PC, nor a Linux laptop can boot the sticks I prepared.
- searching net and especially Ask Different for solutions
The sticks just aren't recognised on any Mac laptop as 'bootable' once the procedure outlined in the manual is finished. All Laptops can boot from external drives (Thunderbolt & USB) and the boot manager updates without interaction once I plug those in.
Possible reasons : - assuming that DiskUtility from 10.12 and 10.14 can't properly format the sticks? - is latest version of Unetbootin acting up? - is the iso for my device incomplete/damaged?
The last item here may be the culprit:
- NVMe SSD-970 EVO Plus Firmware ISO 2B2QEXM7 | 28 MB (works, unneeded)
- NVMe SSD-970 EVO Firmware ISO 2B2QEXE7 | 17.4 MB (doesn't work, needed)
The EVO-iso is mountable directly in macOS and just contains
bzImage initrd isolinux > boot.cat isolinux.bin isolinux.cfg ldlinux.c32
The EVO-plus-iso is not mountable but when written to stick with Unetbootin it shows an EFI folder and GRUB files, etc… Since this one does boot and scans the computer for eligible devices, I am a bit stuck here.
None of these similar questions on AskDifferent offered a working solution:
Since playing with around with DiskUtilities options it seems to be the case that it is a bit buggy. Switching around between various partitions and filetypes related to FAT/FAT32 results in DiskUtility not recognising its own products, with different options greyed out at different times. Looks to me as if some flag or structural anomaly that DiskUtility introduces keeps this from working, like I might have to really wipe down the stick. Alas, neither wipefs nor gparted did that successfully and I do not know what to look for here.