512 premiers octets supprimés du disque; comment récupérer mes données?

12

J'ai accidentellement écrit un binaire de 512 octets sur le mauvais disque USB ddet l'appareil ne montre plus de partitions fdisk.

Je pensais que toutes les données avaient disparu, mais dd if=/dev/sdx | stringsmontre que les données semblent être toujours là, car ddheureusement, elles se sont limitées aux 512 premiers octets. Existe-t-il un moyen de le récupérer ?

Le disque avait deux partitions: une ext4 (~ 4 Go) et les 16 Go restants étaient formatés en NTFS.

edmz
la source

Réponses:

13

Cela dépend de ce qu'il y avait exactement auparavant, mais il pourrait être facile (-ish) de s'en remettre.

  1. Utilisez ddpour créer une image complète de votre clé USB dans un endroit sûr.

  2. Utilisez ddpour créer une image complète de votre clé USB dans un endroit sûr.

  3. Oui, veuillez conserver une image complète. Les opérations de récupération de données peuvent souvent causer plus de dommages que ce à quoi on s'attend.

  4. Essayez de vous souvenir de la disposition des partitions sur ce lecteur USB. Écrivez-le . Cela peut être utile si vous avez des journaux système à partir du moment où ce disque (avant d'être gâché) est détecté par le noyau Linux - assez souvent, il imprimera certaines données sur les partitions détectées.

  5. Utilisez fdisk pour recréer le MBR avec la même table de partition. Ne formatez et / ou fsck aucune partition .

  6. Essayez de monter vos partitions avec l' option en lecture seule ( -o ro) mount.

  7. Si cela réussit, essayez de copier tous les fichiers vers un emplacement sûr et surveillez votre terminal et vos journaux pour les erreurs d'E / S - la manière typique pour les erreurs de limite de partition d'être exprimées est via des accès hors limites sur le périphérique sous-jacent.

  8. Si la copie échoue, restaurez l'image et revenez à l'étape 4.

  9. Ai-je mentionné avoir une image complète de la clé USB avant de faire autre chose?

PS: Vous voudrez peut-être également jeter un œil à des outils comme TestDisk , qui tentent d'automatiser le processus de récupération. Mais vous devez toujours obtenir une image complète en premier.

PS2: Si vous vous sentez suffisamment à l'aise, vous pouvez également expérimenter un peu. Si vous pouvez faire une hypothèse raisonnable pour le point de départ de la première partition, vous pouvez utiliser tune2fs -lpour obtenir la taille exacte de la première partition, ce qui vous permettrait de rechercher le début de la seconde.

thkala
la source
# 1: dd if=/dev/sdx of=backup.imgnon?
edmz
@black: Oui. Vous voudrez peut-être mettre une bs=...option pour augmenter la taille du bloc et l'accélérer un peu.
2015
Une bonne taille de bloc à utiliser est bs=64K. TestDisk vaut vraiment la peine d'essayer, et il peut fonctionner sur les fichiers d'image disque ainsi que sur les disques réels. Bonne chance!
PM 2Ring
La course cat /dev/sdx >backup.imgserait plus rapide que dddans de nombreuses circonstances et certainement pas plus lente dans celui-ci.
roaima
6

Pour restaurer la ext4partition et ses données, j'ai pensé à créer une partition ext4 à l'échelle du disque. Cela m'a permis d' accéder aux données et de récupérer des informations sur la partition avec tune2fs -l, comme suggéré par @thkala. Ces informations semblent très réalisables et donc inchangées.

Très intéressant, gparted est en mesure de déterminer la taille réelle de la partition, comme le montre cet avertissement:

10,96 Gio d'espace non alloué dans la partition. Pour agrandir le système de fichiers afin de remplir la partition, sélectionnez la partition et choisissez l'élément de menu:

car 11GiB était à peu près la dimension de la partition NTFS.

entrez la description de l'image ici

Remarquez l'espace inutilisé que, IIRC, c'était l'espace que ext4 avait encore libre. L' espace non alloué reconnu par gparted semble être une partition NTFS; maintenant, comment puis-je restaurer celle-là aussi , peut-être en trouvant où se termine la première partition, c'est-à-dire son nombre total d'octets?


Enfin, TestDisk a géré cela sans effort.

edmz
la source
Excellent. Veuillez accepter votre propre réponse, il est donc clair que vous aviez une solution acceptable à votre question.
roaima
@roaina Oui, je le ferai à l'expiration de la durée d'ouverture minimale de deux jours.
edmz