Le disque dur externe n'est pas accessible. "La structure du disque est corrompue et illisible"

11

J'ai un disque dur externe AgentGoFlex Seagate de 1 To.

Dernièrement, cela causait des problèmes comme quelques dossiers dont les données ne montraient aucun fichier. Quelques dossiers ne s'ouvraient pas, etc.

J'ai donc essayé de courir chkdsksur Windows 8, mais cela ne s'est pas terminé avec succès. J'ai donc détaché le disque dur. Maintenant, lorsque je connecte le disque dur au système, il n'est pas reconnu. Sous Linux, il n'est pas du tout reconnu.

Alors que dans Win8 lorsque j'essaie d'accéder au disque à partir de l'invite de commande, il est dit "La structure du disque est corrompue et illisible".

Même chkdskéchoue maintenant avec l'erreur: "Le système de fichiers est NTFS. Impossible de déterminer la version et l'état du volume. Chkdsk abandonné."

Lorsque vous essayez d'exécuter "l'utilitaire de vérification" à partir de F: → clic droit → Propriétés → Outils → Vérifier, cela donne l'erreur ci-dessous.

Capture d'écran d'erreur: la vérification du disque n'a pas pu être effectuée car Windows ne peut pas accéder au disque

Le formatage du disque n'est pas une option car j'ai des données très importantes dessus.

Veuillez suggérer ce qui peut être fait pour permettre l'accès au disque dur.

Anurag Rana
la source
1
Si vous ne pouvez pas envoyer votre disque à une entreprise professionnelle de récupération de données, la meilleure solution suivante serait d'essayer de créer une image de vos disques dans son état actuel (avant que le disque ne tombe totalement en panne). Ensuite, vous pouvez conserver le fichier image en tant que "copie sécurisée", essayer de récupérer le disque ou un fichier image dupliqué. Je suis sûr que Linux au moins à un certain niveau reconnaît votre lecteur, alors essayez d'obtenir des outils d'imagerie de disque gratuits et écrivez d'abord l'image sur un autre disque!
Waxhead
1
J'ai bien peur que Ramhound ait raison, votre lecteur soit mort. Les données peuvent être récupérables, mais le faire à la maison peut entraîner la perte d'encore plus de fichiers - certains professionnels peuvent être en mesure de vous aider. Et rappelez-vous, il n'y a que deux types de personnes: celles qui font des sauvegardes et celles qui le feront.
gronostaj

Réponses:

10

Tout d'abord, ne faites rien de plus sur le disque (du moins n'y écrivez jamais ). Le disque n'étant pas reconnu (par opposition à "être reconnu et trouvé vide ou avec des données illisibles") semble indiquer soit un disque complètement dynamité, ce qui chkdskn'est pas habituel, soit quelque chose de mal avec la table de partition ou la géométrie du disque ou la façon dont le boîtier USB le gère. Une panne matérielle est également possible.

Cela peut se produire et se produira lorsque les boîtiers USB tentent de négocier entre le disque et l'ordinateur auquel ils sont connectés. La première chose à faire serait donc de prendre une image du disque sur un disque (évidemment plus grand) au niveau le plus proche du physique possible, en utilisant ddsous Linux. Ensuite, vous pouvez jouer avec une copie d'image au contenu de votre cœur, sans risque de dommages supplémentaires au disque réel.

Mise à jour: reconnaissance des appareils sous Linux

Nous avons pas moins de trois entités dans notre "disque externe". Le matériel du boîtier USB, exposant comme un périphérique bloc. Le disque physique à l'intérieur du boîtier. Le dispositif physique, c'est-à-dire la séquence des secteurs LBA du premier au dernier. Et enfin zéro ou plusieurs partitions de données, hébergeant les systèmes de fichiers. Pour être "reconnu" et affiché sur un bureau, tous les maillons des chaînes doivent fonctionner. Mais pour prendre une image de l'appareil physique, vous n'avez besoin que des deux premiers. Si vous branchez l'appareil et exécutez la ligne de commande dmesg(en tant que root), vous devriez voir quelque chose comme ceci:

[4984939.028491] usb 8-6: new high speed USB device using ehci_hcd and address 3
[4984939.166658] usb 8-6: configuration #1 chosen from 1 choice
[4984939.170660] scsi7 : SCSI emulation for USB Mass Storage devices
[4984939.172003] usb-storage: device found at 3
[4984939.172005] usb-storage: waiting for device to settle before scanning

... qui est l'enceinte reconnue, puis s'identifiant et identifiant son contenu:

[4984939.170660] usb 8-6: New USB device found, idVendor=1058, idProduct=1021
[4984939.170660] usb 8-6: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[4984939.170660] usb 8-6: Product: Ext HDD 1021
[4984939.170660] usb 8-6: Manufacturer: Western Digital
[4984939.170660] usb 8-6: SerialNumber: 574D43305431303831303734
[4984944.400970] usb-storage: device scan complete

Ensuite, vous verrez le pilote informer de sa géométrie, de sa nature et implicitement de son nœud de périphérique, ici sdd(pour le disque SCSI quatre, depuis sda, sdbet sdcdéjà pris):

[4984944.404739] scsi 7:0:0:0: Direct-Access     WD      Ext HDD 1021    2021 PQ: 0 ANSI: 4
[4984944.404739] sd 7:0:0:0: [sdd] 1953519616 512-byte hardware sectors (1000202 MB)
[4984944.407367] sd 7:0:0:0: [sdd] Write Protect is off
[4984944.407369] sd 7:0:0:0: [sdd] Mode Sense: 17 00 10 08
[4984944.407371] sd 7:0:0:0: [sdd] Assuming drive cache: write through
[4984944.408741] sd 7:0:0:0: [sdd] 1953519616 512-byte hardware sectors (1000202 MB)

Ensuite, le noyau reconnaît qu'il y a une partition (si vous ne voyez pas cela, la partition n'est pas là ou n'est pas valide):

[4984944.411497]  sdd: sdd1

Maintenant, Linux a tout ce dont il a besoin et signale une pièce jointe réussie:

[4984944.416739] sd 7:0:0:0: [sdd] Attached SCSI disk
[4984944.416739] sd 7:0:0:0: Attached scsi generic sg4 type 0

Et donc la recherche de la partition de données commence, c'est-à-dire, OK, nous l'avons sdd1, mais qu'est-ce qu'il y a là-bas? et la réponse est:

[4984997.498613] NTFS driver 2.1.29 [Flags: R/W MODULE].
[4984997.554613] NTFS volume version 3.1.
[4984997.568859] NTFS-fs error (device sdd1): load_system_files(): $LogFile is not clean.  Mounting read-only.  Mount in Windows.
[4985390.027808] NTFS-fs error (device sdd1): ntfs_remount(): Volume has errors and is read-only.  Cannot remount read-write.
[4985442.423299] NTFS volume version 3.1.
[4985442.425032] NTFS-fs error (device sdd1): load_system_files(): $LogFile is not clean.  Mounting read-only.  Mount in Windows.

Ce ci-dessus était une "bonne" monture. Mais le simple fait de savoir que le périphérique est sdd, ou sdcou sdb, me permet de faire une copie binaire (en supposant que j'ai assez d'espace libre /mnt/backupdisk): fichier d'entrée, fichier de /dev/sddsortie DiskImage.raw, taille de bloc 1 Mo :

# dd if=/dev/sdd of=/mnt/backupdisk/DiskImage.raw bs=1M

Notez que le fichier d'entrée est /dev/sdd et non /dev/sdd1 (ou tout autre numéro). Maintenant, si je le voulais, je pourrais trouver le décalage de la partition de données à l'intérieur DiskImage.rawet le monter à l'aide d'un périphérique en boucle. Ici vous trouverez les détails de sales.

Première tentative de récupération

La deuxième chose à faire serait de placer le disque physique dans un autre boîtier, garantissant ainsi que le boîtier est bon et permettant au nouveau boîtier d'interpréter correctement le disque. Si le disque réapparaît, c'est peut-être le boîtier précédent qui est cassé. Juste au cas où, sauvegardez tout le contenu du nouveau disque, vérifiez la sauvegarde, mettez à zéro le disque avec un utilitaire de remplacement de disque pour qu'il devienne complètement stupide (vous ne pouvez pas avoir deux appareils avec des opinions différentes dans une chaîne de périphériques), reformatez-le nativement à partir de Windows et restaurer les données. C'est un coup de chance, mais je l'ai vu arriver; et la tentative n'est pas trop chère, de bonnes enceintes valent environ 19,99 $ US neuves.

Si le boîtier d'origine était défectueux, vous ne pourrez pas reformater le disque ou le disque ne sera pas accessible. Vous pouvez réessayer le nouveau boîtier, et si cela fonctionne, remplacez l'ancien boîtier ou continuez à utiliser le nouveau (mais cela vaut la peine si le nouveau boîtier est bien meilleur qu'un El Cheapo de 19,99 $ US).

Récupération professionnelle

Services de récupération professionnels, ceux que vous pouvez trouver avec Google. Une manière pas trop honnête de procéder serait d'envoyer sur le disque physique, et - au cas où vous obtiendriez un "Oui, il n'y a aucun dommage matériel et nous pouvons récupérer toutes vos données pour seulement $ US $$$, $ $$! " réponse - vous sauriez alors que les données étaient encore récupérables. Vous pouvez donc essayer de le faire vous-même gratuitement sur la sauvegarde d'image que vous avez prise, et ne payer que pour le diagnostic et la santé du disque. Si vous échouiez, l'option de cracher la pâte demandée serait toujours là. S'il est dommage matériel, le service professionnel est fondamentalement votre seule option. Il existe plusieurs astuces vaudou qui feront revivre (temporairement) un disque "mort", souvent assez longtemps pour récupérer au moins les données les plus importantes,aucun qui est garanti pour fonctionner à chaque fois (chauffer le disque, le refroidir, le "faire tournoyer" - j'ai même vu suggéré de le violemment contre une surface dure). Tous feront plus de dégâts, c'est-à-dire que vous devez être sûr d'utiliser la seule astuce qui fonctionnera la première fois, sinon vous aurez tué le disque pour toujours. Je viens d'ajouter ceci pour expliquer pourquoi vous verrez des histoires de réussite sur les disques réactivés: il y a de telles histoires. Mais si vous voulez être ( la plupart du temps) Bien sûr , il va arriver à vous , bien - embaucher un professionnel.

Si vous êtes sûr que le matériel est OK - le disque tourne, pas de cliquetis, pas de sons ou de bourdonnements étranges, pas de recalibrations cliquetis-claquements - alors "tout" ce qui s'est passé est que ça a chkdskfoiré certaines données.

Récupération de bricolage

La récupération "à la maison" se déroulerait généralement comme ceci (essentiellement la même chose que les gars professionnels feraient une fois les dommages matériels réduits), en travaillant sur la copie d'image du disque:

  • vérifiez si le premier secteur de l'image disque est une table de partition valide. Sinon, scannez l'image disque à la recherche d'une table de partition valide ou d'un secteur de démarrage NTFS ou FAT32 reconnaissable, en fonction de ce que FS était sur l'unité (pour une unité de 1 To, NTFS semble la seule possibilité logique). Dans tous les cas, vous devriez trouver quelque chose dans les premiers mégaoctets.

  • si la table de partition est trouvée, vérifiez que la partition de données est là où la table de partition indique qu'elle devrait être. Si ce n'est pas le cas, c'est une très bonne nouvelle: la table de partition est probablement tout ce qui ne va pas. Il est facile de le réparer (plusieurs éditeurs de partition Linux le feront), et le disque devrait avoir une récupération à 100%. Juste pour être sûr, essayez de monter la partition de données sous Linux avec un périphérique de boucle en mode lecture seule pour voir si elle est lisible. Si tel est le cas, le borking de la partition est confirmé et le disque peut être prononcé sur son chemin vers une récupération sûre et complète. Si ce n'est pas le cas, la partition est peut-être correcte et une (une partie d'une) partition de données a été réécrite. C'est mauvais; voir ci-dessous sous «les choses tournent mal».

  • s'il est trouvé et valide, vérifiez-le par rapport à la géométrie du lecteur et, s'il ne correspond pas, c'est également une bonne chose, car vous avez peut-être trouvé la cause première du problème. Vous pouvez forcer la géométrie physique au noyau (et l' obtenir au démarrage de Linux ). Vérifiez si la nouvelle géométrie conduit à la reconnaissance du disque sous Linux. Si c'est le cas, sauvegardez les données, vérifiez que la sauvegarde est correcte et mettez à zéro le disque avec dd(quelques mégaoctets de zéros sur le sdpériphérique approprié suffisent). Éteignez l'ordinateur (ne vous contentez pas de redémarrer; OK, c'est paranoïaque, mais cela coûte peu et peut accomplir quelque chose), puis démarrez Windows et demandez-lui de formater le disque désormais désemparé dans ce qu'il pense être le meilleur format. Cela garantit qu'aucun conflit avec Windows. Restaurez les données sur le disque. Prendre plaisir.

  • si l'astuce de géométrie ne fonctionne pas, ou si la partition est introuvable, ou une fois trouvée, elle semble vide, les choses tournent mal. Vous avez besoin d'un outil de récupération capable de numériser l'image disque à la recherche des zones de données (MFT, etc.) des données perdues. Et une fois trouvés, interprétez-les afin d'obtenir les données. C'est un travail difficile et ne peut pas toujours être entièrement automatisé. À un niveau inférieur et plus désespéré, cela implique de rechercher les signatures des fichiers individuels , en espérant qu'ils se trouvent dans des blocs contigus sur le disque. Ce type d'opération, je le laisserais volontiers aux professionnels. Je l'ai fait plusieurs fois, toujours avec succès, avec de vieux disques FAT. Je l'ai fait à nouveau, environ 50% avec succès, avec des disques FAT32 plus récents et plus grands et plus fragmentés. J'ai tenté quelques fois, avec des résultats médiocres (mais j'avais des sauvegardes complètes et je ne donnais pas vraiment tout), sur les systèmes de fichiers NTFS et ext4 beaucoup plus compliqués.

Récupération manuelle depuis Linux

OK, vous essayez donc de monter la partition sous Linux et obtenez des erreurs ( notez que /dev/sdc et ce sont des choses différentes - l'image fait référence )./dev/sdcN /dev/sdc

# mount -t ntfs /dev/sdc1 /mnt/recovery
ntfs_mst_post_read_fixup_warn: magic: 0x00000000  size: 1024   usa_ofs: 0  usa_count: 65535: Invalid argument
Record 1 has no FILE magic (0x0)
Failed to open inode $MFTMirr: Input/output error

... cela semble indiquer que la partition, comme le système le croit , est incorrecte ou gravement endommagée. Voyons d'abord la première option:

# fdisk /dev/sdc

Vous obtenez quelque chose comme ça:

Disk /dev/sdc: 1000.2 GB, 1000204885504 bytes
1 heads, 63 sectors/track, 31008335 cylinders, total 1953525167 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x9d2b7596

Device       Boot      Start    End          Blocks       Id  System
/dev/sdc1              63       1953520127   976760032+   7   HPFS/NTFS/exFAT

La prochaine étape consistera à vérifier le démarrage réel de la partition. En recherchant dans le fichier image (ou /dev/sdc) nous rechercherons la signature NTFS:

  00000000:EB 52 90 4E 54 46 53 20 -20 20 20 00 02 08 00 00 .R.NTFS ........ 
  00000010:00 00 00 00 00 F8 00 00 -3F 00 FF 00 3F 00 00 00 ........?...?... 
  00000020:00 00 00 00 80 00 80 00 -4A F5 7F 00 00 00 00 00 ........J....... 

# dd if=/dev/sdc bs=512 count=1 skip=63 2>/dev/null | hexdump -C | head -n 1

... avec les données ci-dessus, nous nous attendons à ce que le démarrage NTFS soit au secteur 63, c'est pourquoi nous avons défini skip. De plus, nous essaierons avec chaque secteur dans le premier (par exemple) mégaoctet ...

# dd if=/dev/sdc bs=512 count=2000000 2>/dev/null | hexdump -C | grep "00:EB 52 90 4E 54 46 53"

... juste pour être sûr qu'il n'y a qu'un seul secteur de démarrage (je me suis fait avoir ça. Sur un disque FAT32, mais quand même ) et qu'il n'y a aucune erreur de lecture nulle part.

Ton résultat

00007e00  eb 52 90 4e 54 46 53 20  20 20 20 00 02 08 00 00  |.R.NTFS    .....|

est exactement ce à quoi nous nous attendrions: le secteur 63 donne un décalage de 63 × 512 = 32256 = 7e00 hexadécimal. Le secteur de démarrage NTFS est là et la table de partition semble être correcte .

Nous pouvons donc maintenant copier un gros morceau de /dev/sdc1sur, disons, /tmp/mydisk.imget tenter de le réparer à partir de Linux. Cela n'endommagera pas le disque physique, qui sera toujours disponible inchangé pour d'autres tentatives. Et puisque nous savons maintenant que le PT est correct, nous pouvons utiliser /dev/sdc1pour la copie et entretenir des espoirs que nous ne pouvions pas auparavant:

# dd if=/dev/sdc1 of=/tmp/mydisk.img bs=1G count=10
...after copying 10 gigabytes...

# ntfsfix /tmp/mydisk.img

Si NTFSfix ne fonctionne pas, eh bien, nous sommes en difficulté. Il existe cependant des utilitaires plus précis . Et si vous avez besoin de récupérer des fichiers d'image JPEG et que le système de fichiers n'a pas été fragmenté, cela peut être fait automatiquement en recherchant les en-têtes JPEG. Il en va presque de même pour les documents PDF, TIFF et Office, sauf que je ne sais pas comment les reconnaître (pour les JPEG, je le ferais :-)). Comme dernière option, j'ai trouvé ces gars-là - je ne les connais pas, je ne leur suis pas apparenté et je n'accepterai aucun blâme. Cependant, comme ces choses vont, le prix est très raisonnable.

LSerni
la source
@ Iserni - Merci pour l'info. Bien que le tout premier problème avec moi, c'est que je ne peux pas faire l'image du disque dur sur Linux car il n'est pas du tout reconnu. Dans les fenêtres, il est détecté au moins mais n'est pas accessible.
Anurag Rana
mise à jour de la réponse: "non reconnu"
LSerni
@Isreni - Merci beaucoup pour l'aide. Je suis capable de créer une image des données sur le disque, mais les données sur mon disque sont de 400 Go et la taille maximale disponible sur mon ordinateur portable est de 200 Go. donc je ne pourrai pas faire une image complète. Il avortera au milieu. Existe-t-il un moyen de copier seulement 200 Go sur 400 Go sur mon ordinateur portable, puis à partir de cette image de 200 Go, récupérer des données?
Anurag Rana
Oui, vous pouvez utiliser ddavec le countparamètre pour obtenir uniquement un nombre donné de gigaoctets (considérez que les fournisseurs de disques et de disques ne sont pas d'accord sur la taille d'un Go - "200 Go" pour l'un peut signifier "190 Go" pour l'autre. Mais considérez également qu'un nouveau disque USB de 500 Go coûte environ 59,99 USD; peut-être que cela en vaudrait la peine. Le fait que vous puissiez créer une image du disque signifie que, selon toute vraisemblance, le matériel est parfait. Nous examinons un logiciel dysfonctionnement ici (sauf si vous avez eu la malchance sanglante d'un dysfonctionnement matériel du secteur dans une zone critique).
LSerni
@Isreni -Merci u :) Aujourd'hui, j'ai utilisé un logiciel de récupération Seagate (version gratuite) et il est capable de lire le disque dur, de répertorier tous les dossiers (tels qu'ils étaient) et de récupérer tous les fichiers de moins de 64 Ko (sa version gratuite). Cela signifie que le disque dur est sûrement exempt de toute erreur matérielle. Après avoir copié 200 Go de données sur mon ordinateur portable à l'aide de dd, puis-je accéder à ce vidage comme nous accédons aux répertoires normaux? No..right..Parce que le vidage créé est un fichier qui ne peut pas être ouvert avec une application normale installée. Alors, comment pouvons-nous extraire / copier le dossier / fichier requis à partir de ce vidage?
Anurag Rana
-2

allez simplement à cmd en tant que privilège administratif et tapez chkdsk X: / f ("X" est le nom du volume du pilote, "/ f" est fixe)

électroxéon
la source
@Iserni réponse a laissé le niveau de réponse trop élevé, désolé mais je dois voter contre
Francisco Tapia
Depuis OP: "Même chkdsk échoue maintenant avec l'erreur:" Le système de fichiers est NTFS. Impossible de déterminer la version et l'état du volume. chkdsk avorté. ""
Ƭᴇcʜιᴇ007
-3

Une solution simple qui pour moi et pour mes collègues était de monter le disque et de l'utiliser chkdsksur Windows 7.

Raynor
la source