Comment j'ai résolu l'erreur "mmx64.efi not found" en voulant installer Linux.
Ma pauvre Surface Pro 4 avait besoin de faire peau neuve. Même si j’ai toujours laissé Windows 10 dessus (pour la tablette notamment), j’ai voulu aussi avoir un dual boot sous Pop! OS, un système que j’utilise beaucoup en machine virtuelle pour réaliser mes rôles sur Ansible (pour les déployer ensuite sur un Raspberry Pi dédié). J’avais testé avant Ubuntu, puis Arch Linux, avant de me dire que non, ca sera Pop! OS, point final.
SAUF QUE! Lorsque j’ai voulu booter sur ma clé USB pour l’installer, j’ai reçu un drôle de message qui est apparu soudainement:
J’interprète ce message comme le suivant: il ne trouve pas mmx64.efi
, en plus d’avoir un souci pour lancer MokManager. A cause de ces erreurs, le boot ne se fait pas et ma Surface Pro va reprendre la bootlist définie par le BIOS. La raison pourrait être liée à une mauvaise signature EFI (je grossis volontairement les termes), ce qui résulte en une impossibilité de booter sur du Linux, et ce QUELQUE SOIT la distribution. Je suis donc bloqué sur du Windows uniquement. Sommes-nous maudits à jamais?
NON! Il existe un moyen de redonner à la Surface sa possibilité de booter correctement des isos Linux. Mais j’explique avant…
… Ma bêtise…
En réalité, l’erreur provient d’une mauvaise action de ma part lorsque j’ai utilisé Arch Linux. Cet OS ne supporte pas le Secure Boot, et lors de l’installation du kernel linux-surface que j’ai suivi sans trop de craintes, j’ai lancé une commande que je n’aurais pas dû lancer:
Pour simplifier, on a enregistré une clé sur l’EFI permettant de booter correctement sur notre machine lorsqu’on réactive Secure Boot. Sauf que comme Pop! OS ne possède PAS de Secure Boot, cela pose donc des problèmes de compatibilité.
La solution
Les Pré-requis
Pour régler ce souci, nous allons devoir traficoter légèrement une distribution existante afin de pouvoir supprimer ces clés (-héhé 😀 )
- Tout d’abord j’ai récupéré la dernière version d’un OS Linux ayant le support de Secure Boot. Pour cela, je me suis pas cassé la tête, et j’ai choisi Clonezilla en version amd64. Si je le prends, c’est notamment grâce à sa petite taille (juste 400Mo). Téléchargez le en version
.iso
.
- Puis j’ai pris cet exécutable EFI permettant d’avoir un shell : https://github.com/tianocore/edk2/blob/UDK2018/ShellBinPkg/UefiShell/X64/Shell.efi
- Il faut aussi un programme permettant de créer des clés USB bootables: pour cela j’ai pris Rufus en version portable.
- … Et aussi un PC ainsi qu’une clé USB, cela va de soi. N’oubliez pas d’activer les extensions des noms de fichiers!
Création de la clé de boot
Bref, on va lancer Rufus pour créer notre disque de boot. Vous pouvez prendre ce screenshot comme référence pour générer votre clé USB. Il faut que ça soit en MBR, format BIOS/UEFI.
Une fois l’opération terminée, vous allez dans le dossier EFI\BOOT\
de la clé USB, et vous devrez:
- Renommer
bootx64.efi
enbootx64.efi.ori
(afin de savoir que c’est notre fichier original) - Créer une copie de
grubx64.efi
(CTRL+C, CTRL+V), et renommer le fichier copié enmmx64.efi
- Mettre le fichier
shell.efi
téléchargé précédemment et le renommer enbootx64.efi
.
Vous devriez avoir à peu près ceci comme résultat.
Modification du BIOS UEFI
Chaque PC/Tablette à son BIOS géré différemment! Je ne donne que des étapes basiques, normalement vous avez des connaissances la dessus!
Maintenant, bootez dans le bios de votre machine (pour le cas de la Surface Pro, il faut garder appuyé les touches Volume + et POWER lors de l’allumage jusqu’à l’apparition de cet écran).
Désormais, allez dans Security, et désactivez le Secure Boot.
Ensuite, assurez-vous de mettre « USB Storage » en priorité. (vous pouvez brancher la clé USB au passage)
Enfin, cliquez sur Reboot now.
Shell attack!
Si le boot de la clé USB se passe bien, au bout de quelques minutes vous devriez tomber sur un écran avec écrit Shell>. Ecrivez avec le clavier intégré à la tablette (ou votre clavier) le contenu suivant:
dmpstore -d -all MokAuth
dmpstore -d -all MokNew
Si tout va bien, vous devriez voir 2 lignes s’afficher en bas de chacune de ces commandes.
Si vous avez bien eu un retour à chaque message (un Success
par exemple), vous pouvez éteindre votre tablette (appui forcé sur POWER), et booter sur une clé USB avec Linux. Il devrait désormais se lancer sans aucun souci! Si c’est bien le cas, vous êtes sauvés! Testez une autre distribution Linux, et si tout se passe bien vous pouvez booter dessus sans aucun souci.
Si vous avez trouvé ce contenu intéressant, n’hésitez pas à me faire une petit donation sur mon Ko-Fi, je vous en serai plus que reconnaissant!