Oui, vous pouvez le faire avec le /sys
système de fichiers.
/sys
est un faux système de fichiers généré dynamiquement par le noyau et les pilotes du noyau.
Dans ce cas spécifique, vous pouvez aller à /sys/block/sda
et vous verrez un répertoire pour chaque partition sur le lecteur. Il y a 2 fichiers spécifiques dans les dossiers dont vous avez besoin, start
et size
. start
contient le décalage depuis le début du lecteur et size
correspond à la taille de la partition. Supprimez simplement les partitions et recréez-les avec les mêmes départs et tailles que ceux trouvés dans /sys
.
Par exemple, voici à quoi ressemble mon lecteur:
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 133119 65536 83 Linux
/dev/sda2 * 133120 134340607 67103744 7 HPFS/NTFS/exFAT
/dev/sda3 134340608 974675967 420167680 8e Linux LVM
/dev/sda4 974675968 976773167 1048600 82 Linux swap / Solaris
Et voici ce que j'ai dans /sys/block/sda
:
sda1/
start: 2048
size: 131072
sda2/
start: 133120
size: 134207488
sda3/
start: 134340608
size: 840335360
sda4/
start: 974675968
size: 2097200
J'ai testé cela pour vérifier que les informations sont exactes après avoir modifié la table de partition sur un système en cours d'exécution
/dev/sdb/start
. At-il été renomméext_range
? Noyau:4.8.15-1-MANJARO
/sys/block/sdb/start
, pas/dev/sdb/start
stat
, mais nonstart
.fdisk
car il permet d'entrer directement le nombre de secteurs et vous pouvez vérifier les valeurs avant d'écrire sur le disque. J'ai réussi à restaurer un disque en: créant la première partition, en acceptant l'être, puis en entrant "+ taille" (par le haut) pour la fin, la deuxième partition entrantstart
depuis / sys ... et "+ taille" à nouveau et ainsi de suite ... taille des partitions avant d'écrire la nouvelle table. Bonne chance!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
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.
Vous devez changer le type , de XX en nombre de type de partition. Mettez la partition de démarrage en première ligne.
Appliquer ces modifications
Relire les tables de partition
Réinstaller grub
la source
Avez-vous essayé testdisk ? Il peut analyser le disque et récupérer les tables de partition perdues, même après avoir redémarré.
Il est disponible pré-emballé pour Debian et probablement pour Ubuntu aussi. Probablement d'autres distributions.
Si vous démarrez un CD gparted, il vaut probablement la peine de vérifier s'il est préinstallé sur celui-ci.
la source