Convertir une Xubuntu 19.04 de mbr à gpt

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 :

Mon image

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 :

Mon image

 

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.

Mon image

Les fichiers étant déplacés, l’opération dure un certain temps, comme le montre la seconde capture d’écran :

Mon image

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.

Mon image

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) :

Mon image

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 :

Mon image

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 :

Mon image

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 :  

Mon image

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

Mon image

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 :

Mon image

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.