Avec l’arrivée d’APFS en même temps que macOS High Sierra, Apple a mis à jour en masse les EFI de ces Mac. Sans cette mise à jour, il est impossible de démarrer sur un volume en APFS et dans certains cas c’est gênant. Mais il existe une solution pour mettre à jour sans installer l’OS.
Dans mon cas, j’ai eu besoin de cette astuce lors de l’installation de la Matt Card : l’EFI de la carte n’était pas à jour. Mais le problème peut aussi se poser si vous voulez démarrer High Sierra en externe sur un Mac qui n’a pas encore reçu l’OS, ou si jamais vous avez installé High Sierra sur un Mac qui n’a pas le SSD d’origine. Dans ce cas de figure, il est possible que la mise à jour ne s’effectue pas.
Vous aurez d’abord besoin des fichiers d’installation de High Sierra. Normalement, vous pouvez le récupérer depuis n’importe quel Mac avec les liens indiqués dans ce sujet. Ensuite, il faut effectuer la manipulation sur le Mac à mettre à jour (ou tout du moins le même modèle). La technique, ensuite, reste assez simple : sur ce site, vous trouverez un script à copier dans un fichier texte et à sauver avec l’extension .sh
(si jamais il disparaît, je garde une copie). Ensuite, lancez le Terminal et tapez la commande suivante :
./nom_de_votre_script.sh
Ça va lancer la procédure, qui va ouvrir l’installeur de macOS et récupérer les fichiers pour créer un package contenant la mise à jour du firmware du Mac. Après quelques minutes, vous trouverez le fichier dans /tmp/FirmwareUpdateStandalone
. Pour y accéder, soit vous pouveza afficher les fichiers cachés (Shift
+ command
+ .
+ Fn
) ou simplement utiliser la commande Aller -> Aller au dossier… dans le Finder. Le programme se nomme FirmwareUpdateStandalone.pkg
et il faut le lancer. Une fois qu’il a terminé, vous devez redémarrez le Mac pour appliquer la mise à jour (idéalement avec un adaptateur secteur branché sur un portable).
Et voilà. Votre Mac dispose maintenant du firmware nécessaire pour démarrer sur un volume en APFS.
Tu n’a pas indiqué de système minimum, doit-on en conclure que c’est valable pour tous les systèmes antérieurs à High Sierra. ?
Je n’ai pas essayé avant. Je suppose que ça marche sur les systèmes antérieurs, tant que la machine supporte officiellement High Sierra.
Bonjour,
Est-ce cela veut dire que l’on peut réaliser un pkg pour mettre à jour le firmware d’un poste sous Mojave ? Ce serait une possibilité très intéressante, car le clonage du système n’est plus possible justement à cause des firmwares.
Aïe, visiblement le script ne fonctionne qu’avec High Sierra, autant pour moi
J’ai utilisé une autre technique.
Il faut récupérer l’installer de Mojave, monter l’image InstallESD, récupérer le package: /Volumes/InstallESD/Packages/FirmwareUpdate.pkg
dépackager avec : pkgutil –expand FirmwareUpdate.pkg FirmwareUpdate
Ensuite les firmware sont dans : FirmwareUpdate/Scripts/Tools/EFIPayloads
Il faut trouver le bon en fonction de sa machine.
Et finalement pousser la mise à jour avec : sudo bless -mount / -firmware /xxx.scap –verbose –recovery
Merci pour l’article.
J’aime pas Patreon mais si tu as une adresse paypal , pourquoi pas…
le fichier généré fait 192 mo ???
en tapant sur google FirmwareUpdateStandalone.pkg
j’ai récupéré ce fichier :
http://207.157.69.146:8080/CasperShare/Packages/
Bonjour jp,
j’ai essayé ta méthode mais je bloque sur le moment ou je dois pousser le firmware
je tape ça : sudo bless -mount /Users/BenJ/Desktop/MBA61_0107_B00.scap –verbose –recovery
ca me demande mon password et puis plus rien
Tu pourrais m’aider à corriger mon erreur ?
Plutpot comme ça, il manque un bout sinon
sudo bless -mount / -firmware /Users/BenJ/Desktop/MBA61_0107_B00.scap –verbose –recovery
Merci pierre mais ça me fait ça :
Failed to stat firmware file, /Users/BenJ/Desktop/MBA61_0107_B00.scap: 2
Error while writing firmware updater for EFI
Bonjour.
Je reviens sur cette astuce et j’ai tenté avec le script de créer le package : FirmwareUpdateStandalone.pkg pour High Sierra, mais il semble qu’il y ai un souci.
Dans le script on trouve cette commande :
/bin/cp /tmp/FirmwareUpdate/Scripts/postinstall_actions/update /tmp/FirmwareUpdateStandalone/scripts/postinstall
Hors dans le répertoire /tmp/FirmwareUpdate/Scripts/ il n’y a pas de répertoire postinstall_actions mais simplement 2 « exécutables » preinstall et postinstall
J’ai modifié le script ainsi :
/bin/cp /tmp/FirmwareUpdate/Scripts/postinstall /tmp/FirmwareUpdateStandalone/scripts/postinstall
Au lancement du package, j’ai choisi une clé USB comme destination et le répertoire :
/Volumes/xxxxxxx/.PKInstallSandboxManager ne contient rien. Pas de bless sur le Volume.
J’ai raté qq chose ou il y a eu une modification du Package Firm chez Apple?
Merci d’avance.
Bonjour,
Merci pour cet article ! Je pense que c’est la solution à mon problème.
Cependant, lors de l’exécution du script j’ai 3 erreurs :
./update.sh: line 1: {rtf1ansiansicpg1252cocoartf1504cocoasubrtf830: command not found
./update.sh: line 2: syntax error near unexpected token `}’
./update.sh: line 2: `{\fonttbl\f0\fmodern\fcharset0 Courier;}’
Suis-je le seul ?
Merci !