Si on a un PC récent qui supporte l’UEFI et qu’on a installé son Linux en Legacy, on peut être intéressé par une conversion d’un disque dos (mbr) vers le format gpt, mais on n’a pas forcément envie de réinstaller son OS.
Avec Windows, il existe une commande « clé en main », mais avec Ubuntu, Comment faire ?
1. Situation de départ
On part d’une installation d’Ubuntu 19.04 64 bits faite en Legacy sur un disque au format dos (autrement dit mbr). Je n’ai pas jugé nécessaire de faire un rapport boot-info, et je me suis contenté d’une capture d’écran de ce que gparted présente dans le cas d’une installation simple :
On note que l’installation ne comporte qu’une seule partition ext4 (contenant le système et le /home), et que le disque est au format dos (mbr).
2. Les modifications depuis le liveCD
Aucune modification sérieuse n’étant possible depuis une version, installée, on va redémarrer sur le liveCD (en mode Legacy ou UEFI, c’est sans importance pour l’instant) afin de procéder aux principales modifications.
2.1. Conversion du disque au format gpt
Pour cette opération, on va utiliser le partitionneur gdisk. On lui associe le disque concerné, en l’occurrence /dev/sda :
sudo gdisk /dev/sda
Une série d’informations nous signale que nous sommes en présence d’un disque mbr. Une commande est attendue. Un simple « w » confirmé par un « y » va suffire à convertir le disque au format gpt :
Et c’est tout ! Le disque est instantanément converti au format GPT par gdisk.
2.2. Ajout d’une partition EFI
2.2.1. Rétrécissement de la partition Ubuntu
Il est bien clair que la conversion n’aurait aucun intérêt sans partition EFI. Il va falloir la créer. L’option choisie ici est de la placer en tête de disque. Avec gparted, on va donc rétrécir la partition Ubuntu par la gauche.
Les fichiers étant déplacés, l’opération dure un certain temps, comme le montre la seconde capture d’écran :
2.2.2. Création d’une partition fat32
Sur l’espace libre du disque qui est bel et bien passé au format gpt, on va choisir de créer une partition principale formatée en fat32.
Elle recevra automatiquement l’identifiant /dev/sda2 de manière assez logique, ce que montre la capture d’écran qui suit.
2.2.3. Attribution du statut efi à la partition fat32
Lorsque c’est fait, on lui attribue par clic droit les drapeaux boot et esp (ils sont conjoints) :
Notre disque est prêt sur le plan de sa structure d’ensemble. Mais pour l’instant, notre Ubuntu n’est toujours pas capable de fonctionner en UEFI.
2.3. Ajout de l’UUID de la partition efi dans le fichier fstab
Pour éviter de passer ultérieurement par un montage manuel de la partition efi dans /boot/efi, il sera judicieux de l’automatiser tout de suite. La partition efi créée ayant reçu automatiquement une UUID (une idenfication) : autant s’en servir. La commande suivante est là pour nous renseigner :
blkid
L’UUID de la partition /dev/sda2 étant 3C87-F1BE (Cf. image suivante), il va falloir copier cette référence, et l’ajouter au fichier /etc/fstab. Pour ce faire, on va créer un nouveau dossier, monter la partition Ubuntu dans ce dossier, et ouvrir le fichier fstab avec l’éditeur de texte de sa distribution (ici, c’est « mousepad« ) en administrateur en saisissant :
sudo mkdir /mnt/sda1
sudo mount /dev/sda1 /mnt/sda1
sudo mousepad /mnt/sda1/etc/fstab
Et dans le fichier texte qui s’est ouvert, on ajoute les deux lignes suivantes :
# partition efi
UUUID=3C87-F1BE /boot/efi vfat defaults 0 1
On indique en fait au système qu’il doit monter automatiquement cette partition dans /boot/efi à chaque démarrage d’Ubuntu. L’ensemble donne ceci :
A ce stade, notre disque et notre système sont prêts pour la dernière étape : la modification de grub.
3. Passage de Grub pour Legacy à Grub pour UEFI
3.1. Démarrage du système en UEFI via un outil externe
Maintenant, il faut modifier son bios pour le passer du mode Legacy au mode UEFI (ici, chaque marque étant particulière, il est impossible de donner une explication sinon que ça se joue généralement dans l’onglet « boot »).
Lorsque c’est fait, on doit pouvoir lancer son LiveCD en mode UEFI. Mais ce moyen étant fastidieux (car on devra passer par un chroot pour réécrire grub, ce qui augmentera le nombre de commandes), on peut choisir d’utiliser le CD de « REfind » ou de « SuperGrub2disk » qui sont capables de lancer notre Ubuntu installé directement en UEFI via son noyau. C’est le cas ici avec le CD REfind :
Grâce à lui, nous allons travailler directement en UEFI sur la version installée. En choisissant l’option proposée, nous nous retrouvons sur le bureau de notre Ubuntu 19.04 en version installée.
3.2. Suppression des fichiers grub
L’installation d’Ubuntu Legacy ayant inséré des fichiers grub pour ce mode, il convient de les supprimer. La commande est la suivante :
sudo apt purge grub-pc
La commande nous invitant à ajouter la commande suivante, nous nous exécutons :
sudo apt autoremove
Le résultat des deux commandes est le suivant :
A cet instant, l’installation ne possède plus aucun Grub installé. On pourrait très bien le remplacer par Elilo, Refind ou autre lanceur capable de fonctionner en UEFI. Restons-en à Grub.
3.3. Installation des fichier efi de Grub
Cette partie est la plus délicate, car de version en version de Grub, on est confronté à des variantes, et pour trouver des informations fiables, ce n’est pas toujours simple. Cette fois, j’ai trouvé les commandes assez rapidement (dans mes propres essais précédents, en fait), pour récupérer les paquets nécessaires :
sudo apt install grub-efi-amd64-signed shim shim-signed
Grub et Shim sont nécessaires, notamment si on utilise un PC avec le secure-boot activé. Puis, installation de grub et mise à jour :
sudo grub-install /boot/efi
sudo update-grub
L’installation de tout cela se déroule sans encombre :
Notre Ubuntu est prêt à fonctionner. Un redémarrage confirme que tout s’est bien passé. Et de même pour le rapport boot-info récapitulatif.
A noter que l’opération inverse est également faisable, et qu’on peut le faire avec Windows, et même avec un dual-boot.










