Table des matières

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

Marche à suivre

  1. convertir le disque de MBR à GPT
  2. créer une partition pour permettre à Grub de booter à travers le bios sur un disque GPT
  3. réinstaller Grub sur le disque

Procédure

  1. Boot depuis un Système live sur support mobile (Linux MX-21.1_ahs_x64)
  2. 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
  1. Créer la partition de bios-grub1)
    • 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”.
  2. Rétrécir une partition
    • Le disque étant plein, il faut rétrécir une partition. Je jeté mon dévolu sur une partition ext4 parfaitement gérée par Gparted. Ça simplifie considérablement les choses.
    1. Lancer Gparted et utiliser son interface graphique
      1. 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.
  3. Créer la nouvelle partition dans l'espace libéré, sans la formater
    • si vous n'avez pas eu besoin de rétrécir une partition, lancer Gparted
    1. créer une nouvelle partition de 1 MiB dans l'espace libre
    2. Écrire les modifications sur le disque et quitter Gparted
  4. Typer la nouvelle partition en bios-grub
    1. 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
  1. rebooter sur le Système Live puis dans le menu qui se présente :
    1. Basculer vers le chargeur d'amorçage de Grub > Boot Rescue Menus > Grub Menus
      • Grub cherche les menus grub disponibles et trouve le menu d'amorçage du système sur disque
    2. Press Enter to continue
      • Grub propose une liste de menus trouvé
    3. sélectionner le menu du disque système (qui sera souvent le seul)
      • On sélectionne ses choix de chargement habituels et on se connecte
  2. Il reste à réinstaller le Grub
  - # grub-install /dev/sda         // pas de numéro de partition !
  1. 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 :

Cela se traduit par

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 :

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

1)
Également appelée “bios boot partition”.
2)
1 MiB, soit 2048 secteurs de 512 octets ou enocre 512 blocs de 4048 octets, soit 4 KiB.
3)
même si lvreduce traite très bien le rétrécissement simultané d'un volume et du système de fichiers ext4 qu'il contient
4)
On un système de secours présent sur la machine.