Convertir un disque système Debian de MBR vers GPT pour BIOS
Introduction
Cas d'utilisation
Sur ordi BIOS (exclusivement), on souhaite convertir le disque MBR contenant le système et des données en GPT :
Sources
La référence, à lire depuis le début ou aller directement à la section “Booting from GPT on BIOS-Based Computers”
-
-
-
-
-
Switch Debian from legacy to UEFI boot mode va plus loin puisqu'on y apprend comment passer d'un boot MBR à un boot UEFI (non traité dans cette fiche). Le tuto explique également comment chrooter le système cible (ce que j'ai évité d'avoir à faire).
Marche à suivre
convertir le disque de MBR à GPT
créer une partition pour permettre à Grub de booter à travers le bios sur un disque GPT
réinstaller Grub sur le disque
Procédure
Boot depuis un Système live sur support mobile (
Linux MX-21.1_ahs_x64)
Convertir la partition du disque système
# gdisk /dev/sda // remplacer "sda" par le disque concerné dans votre cas ; lsblk pour y voir plus clair
r // pour accéder au sous-menu de réparation
f // pour lancer la conversion
w // pour enregistrer les résultats sur le disque
Créer la partition de bios-grub
1)
Il suffit que le disque dispose de 1Mo non alloué. Ce n'est pas mon cas

Si vous disposez de cet espace libre, sautez l'étape “rétrécir la partition”.
Rétrécir une partition
Lancer Gparted et utiliser son interface graphique
Pour rétrécir la partition (par la droite) de 1 MiB. Gparted se charge du rétrécissement du système de fichier et élimine les risques d'arrondis.
Créer la nouvelle partition dans l'espace libéré, sans la formater
créer une nouvelle partition de 1 MiB dans l'espace libre
Écrire les modifications sur le disque et quitter Gparted
Typer la nouvelle partition en bios-grub
Lancer gdisk
# gdisk /dev/sda // remplacer "sda" par le disque concerné dans votre cas
p // pour avoir la liste et les numéros des partitions
t // pour changer le type de la partition
<n> // le numéro de la partition
ef02 // le fameux code correspondant au type bios-grub
w // pour écrire les modifications sur le disque
rebooter sur le Système Live puis dans le menu qui se présente :
Basculer vers le chargeur d'amorçage de Grub > Boot Rescue Menus > Grub Menus
Press Enter to continue
sélectionner le menu du disque système (qui sera souvent le seul)
Il reste à réinstaller le Grub
- # grub-install /dev/sda // pas de numéro de partition !
redémarrer le système pour s'assurer que tout fonctionne comme souhaité
Caractéristiques simplificatrices
La procédure employée bénéficie de plusieurs caractéristiques de la situation traitée :
on ne se préoccupe pas d'UEFI : on veut simplement booter sur un disque GPT depuis le BIOS
le système live utilisé est parfaitement pourvu en utilitaires de gestion de disque dans des versions traitant correctement la structure GPT, appliquant les règles d'alignement actuelles
2) et propose un menu permettant de booter sur un système non bootable
en travaillant sur un partition ext4, avec un version récente de Gparted, le rétrécissement et la création de partition sont aisées
le système traité n'utilise pas LVM (moins de pression de compatibilité et de risques de bugs sur les utilitaires)
3)
Cela se traduit par
Une conversion de la structure MBR en GPT sans risque et en une seulement commande gdisk
Pas de calculs d’apothicaire ni de sueurs froides lors du rétrécissement de la partition
Pas besoin de chrooter le système du disque pour réinstaller Grub
S'il faut quand même chrooter
En tentant d'appliquer cette procédure sur un autre ordi, je me suis trouvée dans l'obligation de chrooter le système principal que je voulais manipuler depuis le Système live.
Sources :
chroot (fr) (debian-facile.org)
Chroot (fr) (debian.org), automatisation partielle et compléments
-
Je me limite à indiquer les commandes, les explications sont dans les sources.
En tant que superutilisatrice, depuis le Système live4) :
lsblk --fs // histoire de chrooter le bon système
mkdir /mnt/plouf
mount /dev/<système à chrooter> /mnt/plouf
mount --bind /dev/ /mnt/plouf/dev
mount --bind /sys/ /mnt/plouf/sys
mount -t proc /proc /mnt/plouf/proc
mount --bind /run /mnt/plouf/run
chroot /mnt/plouf /bin/bash
mount -a
Pour sortir : exit