Table de partition corrompue (lecteur flash USB)

9

Il s'agit d'une clé USB Patriot de 8 Go, que j'ai largement utilisée avec beaucoup de données. Aujourd'hui, il est détecté, mais toutes les données ont disparu: ( MODIFIER au moins certaines données sont toujours là, mais la table de partition est partie)


EDIT @Sathya (merci) voici la sortie pertinente de sudo fdisk -l:

Disk /dev/sdc: 8019 MB, 8019509248 bytes
247 heads, 62 sectors/track, 1022 cylinders
Units = cylinders of 15314 * 512 = 7840768 bytes

Disk /dev/sdc doesn't contain a valid partition table

Il semble que ce soit / dev / sdc, avec ces 8 Go ... et pas de table de partition.

J'ai essayé de monter / dev / sdc (puis dmesg | tail):

/media> sudo mount /dev/sdc mytmp
mount: wrong fs type, bad option, bad superblock on /dev/sdc,
       missing codepage or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

/media> dmesg | tail
[   24.300000]  sdc: unknown partition table
[   24.320000] sd 2:0:0:0: Attached scsi removable disk sdc
[   24.370000] usb-storage: device scan complete
[   26.870000] EXT2-fs error (device sdc): ext2_check_descriptors: Block bitmap for group 1 not in group (block 0)!
[   26.870000] EXT2-fs: group descriptors corrupted!
[   50.420000] unhashed dentry being revalidated: .DCOPserver_eeepc-brendanma__0
[   50.430000] unhashed dentry being revalidated: .DCOPserver_eeepc-brendanma__0
[   50.430000] unhashed dentry being revalidated: .DCOPserver_eeepc-brendanma__0
[ 5565.470000] EXT2-fs error (device sdc): ext2_check_descriptors: Block bitmap for group 1 not in group (block 0)!
[ 5565.470000] EXT2-fs: group descriptors corrupted!

EDIT @Col: résultats de testdisk

Disk /dev/sdc - 8013 MB / 7642 MiB - CHS 1022 247 62
Current partition structure:
     Partition                  Start        End    Size in sectors

Partition sector doesn't have the endmark 0xAA55

Après avoir frappé [proceed], il dit:

Structure: Ok.


Keys A: add partition, L: load backup, Enter: to continue

La "Structure: Ok." semble rassurant ... "A: ajouter une partition" rendra mes anciennes données accessibles (si elles sont toujours là), ou va-t-elle créer une nouvelle partition fraîche?

Une autre option est " [ MBR Code ] Write TestDisk MBR code to first sector" - serait-il préférable de le faire?


EDIT J'ai trouvé qu'au moins certaines de mes données sont toujours sur le lecteur flash, en utilisant ce qui suit, et en recherchant du texte anglais en moins (comme "the"):

cat /dev/sde | tr -cd '\11\12\40\1540-\176' | less

(Le lecteur est passé de "/ dev / sdb" à "/ dev / sde" car j'ai connecté quelques lecteurs supplémentaires aujourd'hui). J'ai appris que "/ dev / sde1" serait la première partition; et "/ dev / sde" est le lecteur entier. Comme unix traite ces appareils comme des fichiers, vous pouvez utiliser toutes les commandes de fichiers unix ordinaires sur eux, comme cat, puis les traiter comme n'importe quel autre flux de données. Ce qui trprécède supprime les caractères non imprimables ("\ 40" est un espace que je voulais conserver). En moins, vous pouvez utiliser "/" pour rechercher, similaire à Vim.

Comment récupérer mes données (en supposant qu'elles existent toujours)? Si seule la table de partition est corrompue, existe-t-il un "outil de récupération de partition" standard? Existe-t-il un moyen de "repartitionner" sans tout supprimer?

13ren
la source
@ChrisF Cette réponse ne fonctionne pas ... et je ne peux pas y répondre là-bas - donc je l'ai ici (voir la modification de la question).
13ren
@ 13ren - Si vous utilisez le même OpenID sur les deux sites, vous pouvez associer vos comptes. Cependant, pour l'instant, veuillez envoyer un e-mail à [email protected] et leur demander de faire l'association. J'ai entre-temps fusionné les deux questions.
BinaryMisfit
1
@ 13ren - Je sais que vous ne pouvez pas y répondre. J'incluais le lien pour les modérateurs afin qu'ils puissent trouver la question.
ChrisF
Merci ChrisF, désolé d'avoir mal compris. J'ai envoyé un e-mail comme vous l'avez suggéré. @Diago merci pour la fusion, je peux commenter maintenant. Je vais les envoyer à nouveau.
13ren
1
Insérez le lecteur et faites un sudo fdisk -l et pouvez-vous mettre à jour le message avec la sortie?
Sathyajith Bhat

Réponses:

6

Il peut être utile d'exécuter testdisk sur le périphérique, il semble que votre table de partition ait disparu. Testdisk devrait pouvoir récupérer vos données.

Col
la source
@Col merci, mais je n'ai pas de disque de test - j'ai essayé sudo testdisket man testdisk. Je l'ai juste installé, et il détecte / dev / sdc avec 8 Go (comme ajouté à la question). Je ne veux pas aller plus loin jusqu'à ce que je comprenne un peu plus.
13ren
@Col, je l'ai essayé et j'ai ajouté les résultats à la question
13ren
Si vous vous sentez nerveux, il pourrait être utile d'utiliser dd pour créer une image de la clé USB sur votre disque dur, je pense que cela devrait fonctionner même avec un lecteur non montable car il copie peu à peu.
Col
Merci, c'est une bonne idée! Mais comment copier un fichier avec dd? La page de manuel parle de "fichiers" ... oh, / dev / sdc compte-t-il comme un "fichier"? Je peux donc simplement copier l'intégralité de / dev / sdc dans un fichier de convention comme " dd /dev/sdc mybackupfile?
13ren
1
Maintenant, j'ai maintenant des points de réputation, donc je peux vous voter!
13ren
1

Ne vous inquiétez pas, vos données n'ont pas disparu --- vous avez raison de ne pas monter le disque, indépendamment de ce que dit l'interface graphique.

Vous pouvez le monter en faisant (en tant que root) quelque chose comme:

mount /dev/sdb1 /media/Patriot\ Memory

Où je pense que cela sdb1fait référence à votre clé USB - il se peut que ce soit sdc1ousdd1


la source
Ou même sda1, selon l'âge de l'ordinateur (c.-à-d. Si les disques durs sont des IDE)
Matthew Scharley
@Michiel merci - mais il dit "monture: Aucun support trouvé". L'utilisation de sdc1 et sdd1 a donné "mount: le périphérique spécial / dev / sdc1 n'existe pas", ce qui me fait penser que "sdb1" existe mais il y a quelque chose qui ne va pas. Cela a fonctionné pendant des mois, et rien n'a changé à ma connaissance - donc je crains que ce soit une sorte de défaillance matérielle
13ren
1

Bien qu'il soit possible de reconstruire la table de partition, la première chose à faire est de prendre une image de l'appareil. Vous pouvez le faire en dd if=/dev/sdb of=~/memstick.imgchangeant les chemins si nécessaire.

Une fois que vous avez fait cela, exécutez PhotoRec , qui devrait pouvoir extraire tous les fichiers qui s'y trouvent. Si vous avez tout ce dont vous avez besoin, formatez la clé et recommencez, sinon, vous pouvez essayer de récupérer davantage de données.

Dentrasi
la source
1

ddrescue est l'outil dont vous avez besoin. Je ne pense pas que vous serez en mesure de récupérer la table de partition et d'accéder aux données de toute autre manière, en fonction de la sortie que vous avez publiée à partir de testdisk, etc.

http://www.forensicswiki.org/wiki/Ddrescue

ddrescue est un outil de récupération de données. Il copie les données d'un fichier ou d'un périphérique bloc (disque dur, cdrom, etc.) dans un autre, s'efforçant de récupérer les données en cas d'erreurs de lecture.

Le fonctionnement de base de ddrescue est entièrement automatique. Autrement dit, vous n'avez pas à attendre une erreur, arrêter le programme, lire le journal, l'exécuter en mode inverse, etc.

Si vous utilisez la fonction de fichier journal de ddrescue, les données sont sauvées très efficacement (seuls les blocs nécessaires sont lus). Vous pouvez également interrompre le sauvetage à tout moment et le reprendre plus tard au même moment.

Ddrescue n'écrit pas de zéros dans la sortie lorsqu'il trouve des secteurs défectueux dans l'entrée et ne tronque pas le fichier de sortie s'il ne lui est pas demandé. Ainsi, chaque fois que vous l'exécutez sur le même fichier de sortie, il essaie de combler les lacunes sans effacer les données déjà sauvées.

Si vous avez deux ou plusieurs copies endommagées d'un fichier, cdrom, etc., et exécutez ddrescue sur chacune d'entre elles, une à la fois, avec le même fichier de sortie, vous obtiendrez probablement un fichier complet et sans erreur. En effet, la probabilité d'avoir des zones endommagées aux mêmes endroits sur différents fichiers d'entrée est très faible. À l'aide du fichier journal, seuls les blocs nécessaires sont lus à partir de la deuxième copie et des copies successives.

Sam Dunlap
la source