J'ai créé un script pour aider à résoudre ce problème, sans aucune garantie . (mais j'ai testé sur ma machine virtuelle)
Exécution du script suivant, avec HD endommagé au premier paramètre: $ ./repart.sh sda
#!/bin/bash
HARDDISK=$1
PARTITIONS=$(ls -d /sys/block/${HARDDISK}/${HARDDISK}?/)
echo "unit: sectors"
for i in $PARTITIONS; do
DEVICE=$(basename $i)
START=$(cat $i/start)
SIZE=$(cat $i/size)
echo "/dev/$DEVICE : start=$START, size=$SIZE, type=XX"
done
La sortie est au format sfdisk. Mais attention , ce fichier doit être modifié pour être utilisé. Au type de partition étendue = 5, augmentez la taille, en utilisant tout l'espace logique plus l'espace entre le début de l'extension et le début de la première partition logique.
unit: sectors
/dev/sda1 : start=63, size=2040192, type=XX
/dev/sda2 : start=2040255, size=20482875, type=XX
/dev/sda3 : start=22523130, size=19197675, type=XX
/dev/sda4 : start=41720805, size=2, type=XX
/dev/sda5 : start=41720868, size=208782, type=XX
Vous devez changer le type , de XX en nombre de type de partition. Mettez la partition de démarrage en première ligne.
unit: sectors
/dev/sda1 : start=63, size=2040192, type=83, bootable
/dev/sda2 : start=2040255, size=20482875, type=83
/dev/sda3 : start=22523130, size=19197675, type=fd
/dev/sda4 : start=41720805, size=208845, type=5
/dev/sda5 : start=41720868, size=208782, type=82
Appliquer ces modifications
cat repart.sfdisk | sfdisk -f /dev/sda
Relire les tables de partition
partprobe
/sbin/blockdev --rereadpt
Réinstaller grub
grub-install /dev/sda