
Lundi, 09 novembre 2015
Restaurer une table de partition GPT corrompue avec parted
Admettons que (suite à une coupure de courant, un bloc de disque dur défectueux, une erreur de manipulation ou autre) que votre système ne démarre pas, parce que la table de partition est corrompue. Le problème peut se manifester de plusieurs façons, par exemple le chargeur de démarrage GRUB reste coincé sur “Loading GRUB stage 1.5”, ou bien parfois le chargeur de démarrage parvient à charger le noyau, mais celui-ci s’arrête avec “No root found”, puis vous lâche dans le Busybox de l’initrd; après quoi la commande cat /proc/partitions renvoie quelque chose comme:
major minor #blocks name 8 16 488386584 sda
Dépité, vous démarrez sur un système de secours et vous lancez parted sur votre disque:
parted /dev/sda GNU Parted 3.2 Using /dev/sda Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) print Error: The primary GPT table is corrupt, but the backup appears OK, so that will be used. OK/Cancel? OK Model: ATA ST3500630AS (scsi) Disk /dev/sda: 500GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 1049kB 24,7GB 24,7GB ext4 root 2 24,7GB 25,8GB 1096MB linux-swap(v1) 5 24,7GB 500GB 1096MB xfs (parted)
Vous voyez bien que parted utilise la copie de secours de la table de partition, mais vous avez beau chercher dans la documentation, aucune commande ne permet de réécrire cette table! Heureusement, la solution est simple: il faut modifier la table de partition. Pour cela il suffit de créer une partition bidon, qui commence et qui finit au même bloc, le dernier, comme ceci:
(parted) mkpart Partition name? []? test File system type? [ext2]? Start? -1 End? -1
On vérifie le résultat:
(parted) print Model: ATA ST3500630AS (scsi) Disk /dev/sda: 500GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 1049kB 24,7GB 24,7GB ext4 root 2 24,7GB 25,8GB 1096MB linux-swap(v1) 5 24,7GB 500GB 1096MB xfs 3 500GB 500GB 49,2kB ext2 testAu passage, remarquez qu’il n’y a plus de message d’erreur… Maintenant supprimons la partition inutile ( attention, interdiction de se tromper! ):
(parted) rm 3 (parted) q Information: You may need to update /etc/fstab.
Et voilà, sauvé!
posté à: 13:50 permalink