web-dev-qa-db-fra.com

Impossible de réécrire ma table de partitions avec mes deux partitions Linux bien qu'il n'y ait pas d'ovelap

En raison d'un bogue créé par Windows 10, j'essaie de réécrire la table des partitions de mon disque dur avec TestDisk. J'avais un environnement à double démarrage (Windows/Ubuntu) et j'avais deux partitions Linux (type de partition 83). Une partition était avec Ubuntu 13 et l'autre avec Ubuntu 15.04.

Il n'y a pas de chevauchement et par conséquent, je ne comprends pas la raison pour laquelle TestDisk refuse toute structure qui contiendra mes deux partitions Linux: dans l'écran "Recherche rapide", si je ne sélectionne qu'une des deux partitions Linux, il est dit pour moi "Structure OK" mais j'essaye de sélectionner les deux partitions Linux, ça me dit "Mauvaise structure". Pouvez-vous m'aider?

Quand j'essaie de sélectionner mes deux partitions Linux:

TestDisk 6.14, Data Recovery Utility, July 2013
Christophe GRENIER <[email protected]>
http://www.cgsecurity.org

Disk /dev/sda - 750 GB / 698 GiB - CHS 91201 255 63
     Partition               Start        End    Size in sectors
 P FAT32 LBA                0  32 33  3263 170 43   52428800 [RECOVERY]
 * HPFS - NTFS           3263 170 44 39744  19 19  586057728 [OS]
 P HPFS - NTFS          39744  19 20 51954 195 57  196164776 [DATA]
   HPFS - NTFS          39744  19 20 51954 209 31  196165632 [DATA]
>L Linux                51954 209 32 70244 108  8  293822464
 L Linux                70244 108  9 90445 190 49  324534272
 L Linux Swap           90446 195 54 91201  52 51   12120064

Structure: Bad. Use Up/Down Arrow keys to select partition.
Use Left/Right Arrow keys to CHANGE partition characteristics:
*=Primary bootable  P=Primary  L=Logical  E=Extended  D=Deleted
Keys A: add partition, L: load backup, T: change type, P: list files,
     Enter: to continueubuntu@ubuntu:~$
ext4 blocksize=4096 Large file Sparse superblock, 150 GB / 140 GiB

Lorsque j'essaie de sélectionner uniquement ma première partition Linux:

Disk /dev/sda - 750 GB / 698 GiB - CHS 91201 255 63
     Partition               Start        End    Size in sectors
 P FAT32 LBA                0  32 33  3263 170 43   52428800 [RECOVERY]
 * HPFS - NTFS           3263 170 44 39744  19 19  586057728 [OS]
 P HPFS - NTFS          39744  19 20 51954 195 57  196164776 [DATA]
   HPFS - NTFS          39744  19 20 51954 209 31  196165632 [DATA]
 L Linux                51954 209 32 70244 108  8  293822464
   Linux                70244 108  9 90445 190 49  324534272
>L Linux Swap           90446 195 54 91201  52 51   12120064

Structure: Ok.  Use Up/Down Arrow keys to select partition.
Use Left/Right Arrow keys to CHANGE partition characteristics:
*=Primary bootable  P=Primary  L=Logical  E=Extended  D=Deleted
Keys A: add partition, L: load backup, T: change type,
     Enter: to continue
SWAP2 version 1, pagesize=4096, 6205 MB / 5918 MiB

Lorsque j'essaie de sélectionner uniquement ma deuxième partition Linux:

Disk /dev/sda - 750 GB / 698 GiB - CHS 91201 255 63
     Partition               Start        End    Size in sectors
 P FAT32 LBA                0  32 33  3263 170 43   52428800 [RECOVERY]
 * HPFS - NTFS           3263 170 44 39744  19 19  586057728 [OS]
 P HPFS - NTFS          39744  19 20 51954 195 57  196164776 [DATA]
   HPFS - NTFS          39744  19 20 51954 209 31  196165632 [DATA]
   Linux                51954 209 32 70244 108  8  293822464
>L Linux                70244 108  9 90445 190 49  324534272
 L Linux Swap           90446 195 54 91201  52 51   12120064

Structure: Ok.  Use Up/Down Arrow keys to select partition.
Use Left/Right Arrow keys to CHANGE partition characteristics:
*=Primary bootable  P=Primary  L=Logical  E=Extended  D=Deleted
2
Grégory P.

Mission accomplie ! J'ai utilisé TestDisk pour restaurer avec succès toutes mes partitions. Cela dit, je dois avouer que j'ai été un peu chanceux. Hier, j'ai lancé TestDisk après ne l'avoir pas utilisé pendant quelques jours. Pour une raison inconnue, l'application s'est comportée différemment de la façon dont elle se comportait auparavant: en effet, TestDisk prend au moins une minute pour afficher l'écran "Recherche rapide" alors qu'il était immédiatement affiché lors des précédentes utilisations. Pendant cette minute, l'écran TestDisk affiche les valeurs des points de début et de fin de chaque partition. Cependant, pendant cette minute, les valeurs de point final des premières partitions Linux étaient des valeurs qui n'avaient jamais été données par aucun autre écran TestDisk ou par aucune autre commande ou application auparavant. J'avais le sentiment que ces valeurs, qui étaient temporairement affichées, étaient les bonnes: le fait est que ces valeurs permettaient d'avoir de l'espace entre les deux partitions Linux/Logique.

Ensuite, j'ai édité un fichier Log TestDisk, qui est un simple fichier ASCII. J'ai ajouté deux nouvelles lignes à ce fichier texte: ces lignes concernaient les deux partitions logiques manquantes. Naturellement, pour la première Partitions Linux, j'ai entré les valeurs de point de fin qui venaient mystérieusement d'apparaître juste avant l'écran "Recherche rapide". L'étape suivante consistait à charger le fichier journal mis à jour dans TestDisk. La structure du disque a été immédiatement acceptée par l'application. Ensuite, j'ai seulement a dû demander à TestDisk de réécrire la table des partitions en prenant en compte les valeurs données par le fichier journal. Après cela, je devais juste redémarrer mon ordinateur, lancer Boot-Repair depuis une session Ubuntu Live-CD, redémarrer à nouveau mon ordinateur et enfin, d'utiliser un GRUB fonctionnel, de lancer Ubuntu et de profiter d'Ubuntu, qui était de retour à la vie!

Pour information, les valeurs qui ont finalement été utilisées pour réécrire avec succès la table des partitions avec TestDisk sont disponibles ici à la toute fin de la première feuille ("Feuil1"): https://docs.google.com/spreadsheets/ d/16bOgee0CIObZORWjyKw7l7do8czfdfB5PEGZj6OhWjc/edit? usp = partage

0
Grégory P.

TestDisk est un outil de dernier recours. Les types de problèmes créés par les outils de partitionnement Windows peuvent souvent être résolus avec des mesures moins drastiques. Pour les experts, les merveilles peuvent être travaillées avec fdisk ou sfdisk. Pour ceux qui ont des compétences intermédiaires, mes propres FixParts (qui font partie du package gdisk dans Ubuntu) peuvent résoudre de nombreux problèmes. Voir documentation FixParts pour plus d'informations sur son utilisation. Ce fil de discussion sur les forums Ubunt contient des informations de base sur l'utilisation de sfdisk pour résoudre les problèmes. Cela dit, sauf si j'ai mal lu votre sortie, je ne pense pas que FixParts sera en mesure de récupérer toutes vos partitions - au moins, pas par lui-même. sfdisk pourrait probablement le faire, mais cela demandera plus d'expertise.

Malheureusement, puisque vous n'avez présenté aucune information sur l'apparence actuelle de votre table de partition, je travaille aveuglément sur certains détails critiques. Je vous recommande de lire les liens que j'ai fournis (et en particulier ma page FixParts), de le comparer à ce que vous avez, et peut-être de voir ce que ces outils font de votre disque. Si vous souhaitez plus d'aide, modifiez votre question pour inclure la sortie de Sudo fdisk -l /dev/sda et ajouter un commentaire à cette réponse pour signaler mon attention.

En ce qui concerne le problème auquel vous êtes confronté, je soupçonne que la cause est que vous essayez de récupérer deux partitions comme étant logiques lorsqu'il n'y a pas de secteurs libres entre elles. La structure habituelle d'un disque MBR nécessite au moins un secteur libre entre deux partitions logiques, donc ce que vous essayez de faire ne fonctionnera pas. (Certains outils, tels que sfdisk, ont des moyens de contourner cette limitation, mais la plupart s'y étoufferont.) Compte tenu de la disposition de votre disque, il peut ne pas être possible d'inclure toutes vos partitions dans une configuration MBR, sauf en redimensionnant d'abord une ou deux partitions. Selon l'état actuel de la partition, cela peut être une proposition extrêmement dangereuse.

Une autre possibilité pourrait être de convertir en GPT. (Ou peut-être que le disque était à l'origine - et peut-être toujours - sous forme de GPT, et vous venez de dire à TestDisk que vous vouliez utiliser MBR?) GPT n'a pas le problème de l'espace entre les partitions du MBR, donc vous devriez être capable d'inclure toutes vos partitions dans ce formulaire. L'inconvénient est que si le disque utilise actuellement MBR et démarre Windows avec succès, vous devrez passer par quelques cercles pour obtenir le démarrage de Windows en mode EFI. (Vous aurez également besoin d'un ordinateur avec le firmware EFI/UEFI.) Même si le disque utilise actuellement MBR, la conversion en GPT peut vous permettre de redimensionner les partitions. Vous pouvez ensuite reconvertir en MBR pour redémarrer Windows. Une telle conversion, même temporaire, pourrait vous obliger à réinstaller les chargeurs de démarrage.

Quoi que vous fassiez, ne modifiez pas votre table de partition jusqu'à ce que vous compreniez parfaitement ce qui se passe. De nombreuses personnes dans des situations similaires à la vôtre ont causé un préjudice irréparable à leurs données en se précipitant avec une compréhension inadéquate du problème. De plus, si vous n'avez pas déjà de bonnes sauvegardes, faites-les. Même une personne compétente pourrait facilement perdre des données en essayant de résoudre votre problème.


MODIFIER:

Compte tenu des nouvelles informations que vous avez présentées, il semble que Windows ait complètement effacé deux partitions de votre table de partition. La bonne nouvelle est que vous disposez d'excellentes données sur les points de départ et d'arrivée des systèmes de fichiers, vous devriez donc pouvoir récupérer. (Le fait que TestDisk ait trouvé des systèmes de fichiers signifie que vos données sont probablement intactes, simplement inaccessibles.)

Peu importe comment vous faites cela, je fortement vous recommande de commencer par faire une sauvegarde complète de bas niveau du disque. Si mes calculs sont corrects, votre disque a une taille de 700 Go, vous devriez donc pouvoir faire une sauvegarde sur un disque avec au moins autant d'espace libre avec une commande comme celle-ci:

Sudo dd if=/dev/sda of=/path/to/lots/of/space/backup-sda.img bs=4096

Cette opération prendra probablement quelques heures. Soyez très prudent avec cette commande, et en particulier avec le if= et of= options, qui spécifient respectivement les fichiers d'entrée et de sortie. Cela fait ...

IIRC, sfdisk peut créer une partition étendue avec des partitions logiques qui n'ont pas d'espace entre elles, vous pouvez donc essayer de récupérer en créant d'abord un fichier texte sfdisk avec la commande suivante:

sfdisk -d /dev/sda > partitions-sda.txt

Le contenu de partitions-sda.txt doit être similaire au premier bloc de sortie de votre feuille de calcul. Vous pouvez ensuite charger ce fichier dans un éditeur de texte et ajouter des informations sur vos deux partitions manquantes. Les parties délicates sont les valeurs de début et de taille, mais vous semblez les avoir déjà calculées, il vous suffit donc de créer des lignes appropriées pour elles avec les bonnes valeurs spécifiées. Vous devrez également ajuster le point de départ de la partition étendue afin qu'elle contienne vos deux "nouvelles" partitions (récupérées). Lorsque vous avez terminé, vous pouvez réécrire le résultat sur le disque:

sfdisk -f /dev/sda < partitions-sda.txt

Cela devrait fonctionner. Si ce n'est pas le cas, alors vous avez peut-être fait une erreur, ou peut-être que je me trompe sur les capacités de sfdisk, ou peut-être que sfdisk a changé.

Une fois cela fait, je vous recommande de vérifier vos systèmes de fichiers. Vous pouvez également réduire la fin de la première partition Ubuntu afin qu'il y ait un petit écart entre celle-ci et la suivante. Vous pouvez probablement le faire avec GParted - bien qu'il soit possible que GParted refuse de travailler sur le disque en raison de ce problème. Dans ce cas, vous devrez peut-être sauvegarder la partition, la supprimer, en créer une nouvelle à sa place et restaurer les données.

Une alternative à cette procédure consiste à acheter un nouveau disque et à copier les partitions sur une à la fois. Vous pouvez même utiliser dd avec l'option skip pour lire les systèmes de fichiers "perdus" du disque sans recréer les partitions autour d'eux - mais vous devez être très précis lorsque vous spécifiez les points de départ.

Une autre alternative consiste à utiliser TestDisk pour récupérer la première partition Linux, à la réduire légèrement avec GParted, puis à réexécuter TestDisk pour récupérer la deuxième partition Linux. Cela devrait fonctionner, mais il y a une petite chance que TestDisk ou GParted écrive quelque chose dans la zone occupée par le deuxième système de fichiers alors qu'il n'est pas officiellement alloué, l'endommageant ainsi.

Dire à TestDisk de récupérer le disque en tant que GPT est une autre option, mais cela rendra Windows impossible à démarrer, au moins jusqu'à ce que vous sautiez dans plus de cercles. Si votre ordinateur est basé sur le BIOS (plutôt que sur EFI, comme la plupart des ordinateurs post-2011), vous ne pourrez pas démarrer Windows du tout à partir de GPT. Si vous optez pour cette option, vous devrez écrire un nouveau chargeur de démarrage sur le disque.


EDIT 2:

En réponse à vos dernières questions:

  • Oui, vous inverseriez la commande dd pour restaurer la sauvegarde.
  • Notez que la première commande sfdisk que j'ai présentée utilise un -d option et le second a utilisé un -f option.
  • L'intérêt de l'utilisation de sfdisk est que, IIRC, c'est l'un des rares programmes qui peuvent créer deux partitions logiques sans espace entre elles. Pour ce faire, il écrit les EBR consécutivement sur le disque, avant l'une ou l'autre partition logique. Bien que les EBR soient des structures de données de disque importantes, vous ne devriez normalement pas essayer de les modifier à la main; laissez simplement sfdisk (ou GParted ou autre) les gérer.
  • Je suppose que vos partitions Linux étaient à l'origine des primaires et que Windows les a supprimées; mais c'était peut-être des logiques créées par sfdisk ou quelque chose d'autre qui pouvait créer deux partitions logiques l'une à côté de l'autre, et quand le partitionneur Windows a vu qu'il les étouffait et les supprimait plutôt que d'essayer de créer quelque chose qu'il ne pouvait pas '' t.
2
Rod Smith

Regardez les secteurs de début et de fin dans vos captures d'écran, s'il vous plaît. Dans la première, vous sélectionnez la première partition Linux dont la structure est apparemment mauvaise. Dans la deuxième capture d'écran, vous sélectionnez le fichier d'échange Linux qui est bon. Dans la troisième capture d'écran, vous sélectionnez la deuxième partition Linux qui est également OK. Selon vos captures d'écran, vous ne sélectionnez jamais deux partitions en même temps. AFAIK, il est impossible de sélectionner deux partitions en même temps, vous ne pouvez même pas le faire. Vous devez donc réparer uniquement votre première partition Linux. BTW: sur la troisième capture d'écran, certaines informations importantes sont coupées.

0
wie5Ooma