Outils pour utilisateurs

Outils du site


convertir_un_disque_systeme_debian_de_mbr_vers_gpt_pour_bios

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 :

  • sans perte de données,
  • en étant capable de booter, en conservant Grub comme bootloader.

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 !
  • Grub reconnaît la structure GPT du disque et trouve sa partition dédiée (boot-grub) lui permettant d'implanter le composant nécessaire à un boot BIOS sur le disque système GPT
  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 :

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

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.
convertir_un_disque_systeme_debian_de_mbr_vers_gpt_pour_bios.txt · Dernière modification : 2022/08/21 08:47 de 127.0.0.1