Apple empêche de démarrer sur certains disques Thunderbolt

Depuis la mise à jour 10.12.2 de macOS Sierra et la mise à jour de sécurité d’OS X El Capitan, Apple empêche le démarrage sur certains disques externes en Thunderbolt. Mais « It’s not a bug, it’s a feature ».

En simplifiant : la dernière mise à jour des deux OS met à jour l’EFI des Mac Thunderbolt pour corriger une faille, mais cette correction a un effet indésirable. La faille permettait de récupérer le contenu de la mémoire (et le mot de passe FileVault) avec du matériel peu onéreux en passant par le bus Thunderbolt avant le lancement de l’OS. La correction d’Apple consiste à empêcher le chargement du firmware d’un périphérique Thunderbolt (ce qu’on appelle une Option ROM) avant le chargement de l’OS, ce qui empêche un appareil malicieux d’effectuer son travail. Mais, effet indésirable, il empêche aussi un appareil classique de charger son firmware, nécessaire dans certains cas pour démarrer.

Ca ne touche pas tous les appareils (heureusement). L’EFI des Mac contient en effet des pilotes pour quelques composants standards (contrôleurs SATA, USB 3.0, etc.) et une bonne partie des boîtiers Thunderbolt utilise les puces en question. Typiquement, tous les périphériques contenant un seul disque dur (ou SSD) continuent à fonctionner sans soucis. Mais avec les boîtiers RAID – notamment les Pegasus de Promise -, le démarrage pose pas mal de soucis. C’est globalement le cas sur tous les appareils qui proposent du RAID matériel. Ca n’empêche heureusement que le démarrage, les périphériques fonctionnent toujours une fois que macOS est lancé.

Pour le moment, Apple a deux solutions qui ne sont pas très pratiques. La première consiste à forcer le chargement de l’Option ROM du périphérique au démarrage, manuellement. Il faut donc allumer le Mac, presser option (alt) pour afficher tous les disques qui permettent le démarrage et ensuite presser option, command, shift et le . (le point) pour afficher le périphérique. Normalement – je n’ai pas testé, faute de périphériques touchés -, il devrait ensuite apparaître. Une solution peu pratique, à répéter à chaque démarrage.

Le menu en question

L’autre solution consiste tout simplement à désactiver la nouvelle protection pour revenir au comportement antérieur. Ca ne fonctionne selon Apple que sur les Mac 2015 et avant (donc a priori pas sur les MacBook Pro 2016) et ça doit sauter en cas de reset de la PRAM. La commande en question est à taper dans le Terminal.

sudo nvram enable-legacy-orom-behavior=1

A noter qu’avec un mot de passe EFI, il devient totalement impossible de charger l’Option ROM au démarrage, même en utilisant le raccourci : le démarrage ne pourra donc se faire que sur un disque interne ou sur un périphérique sans Option ROM.