Clover, le bootloader NVMe des machines simplement PCIe

Rédigé par Frédéric Dumas Aucun commentaire
Classé dans : Administration système Mots clés : réutilisation, hacking
L'image d'illustration a été générée à l'aide du modèle de diffusion

Disponible sous licence libre, Clover permet de démarrer un système d'exploitation depuis la mémoire de masse SSD NVMe des machines dont le BIOS/UEFI ne le permet normalement pas.



Les BIOS/UEFI des machines datant d'avant 2013 n'incluaient pas les SSD NVMe, ces mémoires de masse PCIe à très faible latence, parmi les périphériques de démarrage. Sur de telles machines dépourvues de slots M.2, on avait beau installer un système d'exploitation sur le SSD NVMe, le système d'exploitation ne pouvait être amorcé par l'UEFI. Pour toutes ces machines, une astucieuse solution corrige désormais cette limitation et permet de les faire profiter elles-aussi des excellents temps de latence et de transfert des mémoires de masse NVMe, comme "disque" principal de démarrage.

Clover est une suite d'utilitaires et de pilotes, disponibles sous licence libre, téléchargeables depuis GitHub, et issus des travaux sur le Hackintosh. Copié sur une clé USB, Clover devient un programme d'amorçage intermédiaire, appelé au démarrage par l'UEFI, et capable à son tour d'identifier la présence d'un système d'exploitation sur NVMe, puis de le faire ainsi démarrer. La mise en œuvre de Clover est ce que nous allons détailler ici.


Étape préalable : installation du système d'exploitation

Clover n'assiste pas l'utilisateur dans l'installation de son système d'exploitation sur le SSD NVMe; installer le système reste une étape manuelle séparée. L'installeur du système d'exploitation partitionnera et formatera le SSD NVMe choisi, il copiera ses fichiers et surtout son code d'amorçage dans ses secteurs de démarrage. Ce sont les mêmes étapes que celles appliquées habituellement à tout autre HDD ou SSD SATA. À ce stade, l'installeur ignore l'incapacité du BIOS/UEFI de la machine hôte à accéder par lui-même à la mémoire de masse NVMe.

Des particularités pourront exister pour cette installation du système d'exploitation, selon les options propres à chaque éditeur ou distribution. En particulier, si le système d'exploitation nécessite de redémarrer automatiquement plusieurs fois la machine pour achever sa configuration, il ne sera en mesure de le faire qu'après que Clover ait été mis en place. Tant que ce n'est pas le cas, l'installation ne pourra s'achever complètement.

Préparation de la mémoire de masse USB

Clover se résume à un code d'amorçage et à des pilotes permettant d'accéder à la mémoire de masse MVMe sur la machine ; il n'impose donc aucune exigence quant au choix de la clé USB sur laquelle l'enregistrer, et qui restera en permanence attachée à la machine. En particulier, il est inutile de se préoccuper des performances en temps d'accès, latence, et résistance à l'usure en écriture de cette mémoire flash, puisque aucune opération ne sera réalisée dessus, autre que la lecture de Clover par le BIOS/UEFI à chaque redémarrage de la machine, et la mise à jour du fichier de configuration de Clover dans de rares cas.

Clover n'exige pas d'enregistrer son image ISO sur la clé USB, mais simplement d'y copier ses fichiers. De nombreux utilitaires permettent de partitionner et formater une mémoire de masse. On utilisera celui de son choix. Préparer la mémoire de masse USB revient à:
  • la partitionner avec un unique volume FAT32, qui servira de volume de démarrage EFI ; FAT32 est ici requis, car c'est le système de fichiers attendu par l'UEFI de la machine hôte, pour y lire un code d'amorçage et lui donner la main ; on choisira d'installer la table des partitions au format GPT (GUID Partition Table), et non au format MBR (Master Boot Record) ;
  • si l'utilitaire de partitionnement choisi le permet, on préférera créer un volume EFI, qui ne diffère en rien du volume FAT32, si ce n'est qu'il est marqué comme ESP (EFI System Partition) dans la table des partitions ; cela permet ainsi de signaler à l'UEFI dans quelle partition chercher le code d'amorçage, quand plusieurs partitions existent sur la même mémoire de masse ; cela ne concerne normalement pas le cas présent.
À ce stade, le volume ainsi créé sera vierge de tout fichier; sa taille et son label importent peu, on pourra par exemple lui donner EFI ou CLOVER pour nom et le laisser occuper la totalité de l'espace disponible sur la mémoire de masse USB; on peut à l'inverse limiter sa taille à quelques dizaines de méga-octets, juste assez pour y copier les fichiers Clover. Par simplicité, on évitera de créer un autre volume sur la même mémoire de masse, ce qui permet à l'UEFI de trouver le code d'amorçage dans l'unique volume FAT32 disponible, même si celui-ci n'est pas marqué EFI System Partition dans la table des partitions.

Copie de Clover sur la mémoire de masse USB

La dernière version de Clover se trouve en accès libre sur GitHub, à cette URL:


Parmi les choix proposés, on téléchargera et décompressera l'archive CloverV2-xxxx.zip dans sa version la plus récente, qui sur GitHub s'affiche en tête de liste. Le nom de l'archive zip précise le numéro de version de Clover. Après décompression, un dossier CloverV2 réuni tous les sous-dossiers contenus dans l'archive zip. Ce sont eux qu'il faut copier dans le volume FAT32 créé sur la clé USB. Seuls les sous-dossiers doivent être copiés à la racine de la clé USB, et non le dossier CloverV2 lui-même.

À ce stade, deux opérations restent encore à faire, avant d'utiliser Clover pour la première fois.

Copie du pilote NvmExpressDxe.efi

Sur la clé USB, copier le pilote NvmExpressDxe.efi
présent dans le dossier :
    EFI/CLOVER/drivers/off/UEFI/Other/
vers le dossier :
    EFI/CLOVER/drivers/UEFI/

Création du fichier de configuration config.plist

Toujours sur la clé USB, renommer le fichier de configuration config-sample.plist
présent dans le dossier :
    EFI/CLOVER/
en lui donnant le nom :
    config.plist

Le choix du format plist propre à Apple pour enregistrer les préférences de Clover rappelle l'origine du projet, lié à l'installation du système d'exploitation d'Apple sur des machines Intel différentes de celles proposées par Apple. Il sera plus facile aux utilisateurs de macOS qu'aux autres d'éditer le fichier de configuration de Clover, en double-cliquant simplement dessus, ce qui l'ouvrira dans l'application XCode. Les utilisateurs d'autres systèmes devront avoir recours à un éditeur de texte.

La mémoire de masse USB est maintenant prête à servir de disque de démarrage, puisque s'y trouve le code d'amorçage capable de chainer le BIOS/UEFI d'un coté, et le bootloader propre au système d'exploitation sur SSD NVMe de l'autre. Elle doit maintenant être branchée dans un port USB de la machine hôte et y rester en permanence.

Configuration du BIOS/UEFI pour démarrer sur support USB

Accéder aux écrans de paramétrage du BIOS/UEFI et y choisir la mémoire de masse installée sur la machine depuis laquelle lancer le système d'exploitation, reste très spécifique à chaque machine et chaque fabricant. Cette manipulation ne sera pas détaillée ici, mais reste classique pour toute personne ayant eu un jour à installer un système d'exploitation. Par définition, ce BIOS/UEFI n'offrira pas le choix du SSD MVMe comme volume de démarrage, et on devra donc lui désigner la mémoire de masse USB sur laquelle Clover est présent, comme "disque" de démarrage.

Configuration de Clover au premier démarrage

Clover a été conçu en premier lieu pour transmettre au système d'exploitation macOS des informations normalement fournies par les EFI des ordinateurs d'Apple, permettant à macOS de démarrer sur une plateforme PC, bien que ces informations soient partiellement ou pas du tout fournies par les BIOS/UEFI des plateformes PC. L'usage que nous faisons ici de Clover pour démarrer un système d'exploitation quelconque depuis un SSD NVMe non pris en charge par le BIOS/UEFI, est donc en quelque sorte un détournement de sa mission première. Clover est cependant suffisamment polyvalent pour fonctionner parfaitement dans ce rôle, et n'exiger aucun réglage particulier.


Au premier démarrage, avant d'amorcer le système d'exploitation se trouvant sur le SSD NVMe, Clover affiche son écran de configuration, comme le ferait Grub utilisé par les distributions Linux. Pour l'essentiel, il suffit de cliquer à la souris ou de sélectionner au clavier l'icône représentant le système d'exploitation installé sur le SSD NVMe, vraisemblablement la première en partant de la gauche, pour voir ce système d'exploitation prendre la main et démarrer.

Considérations de sécurité

Clover s'intercale dans le processus de démarrage avant de donner la main au système d'exploitation. On ne l'utilisera qu'en ayant confiance qu'il n'est pas vecteur de code malicieux, destiné à compromettre les sécurités du système d'exploitation et accéder illégitimement aux données de la machine. La nature open source et libre du code de Clover, permet normalement sa revue et son analyse, et par là, une forte protection contre l'ajout subreptice de code malicieux. Cette sécurité par conception est un des buts poursuivis, quand nous donnons préférence au code ouvert.

Écrire un commentaire

Quelle est le dernier caractère du mot y5zwh ?