web-dev-qa-db-fra.com

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

J'ai un disque dur externe 1 TB AgentGoFlex Seagate.

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

J'ai donc essayé d'exécuter chkdsk sur Windows 8, mais l'opération ne s'est pas terminée correctement. 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, cela n’est pas du tout reconnu.

Alors que je suis dans Win8, lorsque j'essaie d'accéder au disque à partir de la commande Invite, il est indiqué "La structure du disque est corrompue et illisible".

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

Lorsque vous essayez d'exécuter l'utilitaire de vérification à partir de F: → cliquez avec le bouton droit de la souris sur → Propriétés → Outils → Vérifier, l'erreur ci-dessous est générée.

Error screenshot: The disk check could not be performed because Windows can't access the disk

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

S'il vous plaît suggérer ce qui peut être fait pour permettre l'accès au disque dur.

11
Anurag Rana

Tout d’abord, ne fait rien de plus sur le disque(du moins jamais write ). Le disque non reconnu (par opposition à "être reconnu et trouvé vide ou avec des données illisibles") semble indiquer un disque complètement détruit, ce que chkdsk n'est pas habituel de faire, ou quelque chose qui cloche avec le table de partition ou de 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 produiralorsque 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 possible du niveau physique, en utilisant dd sous Linux. Vous pouvez alors jouer avec une copie d’image au contenu de votre coeur, sans risquer d’endommager davantage le disque réel.

Mise à jour: reconnaissance de périphérique sous Linux

Nous n’avons pas moins de trois entités dans notre "disque externe". Le matériel du boîtier USB, exposé en tant que périphérique bloc. Le disque physique à l'intérieur de l'enceinte. Le périphérique 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 liens des chaînes doivent fonctionner. Mais pour prendre une image du périphérique physique, vous n'avez besoin que des deux premiers. Si vous connectez le périphérique 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 le boîtier reconnu, puis s'identifiant ainsi que 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

Vous verrez ensuite 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, puisque sda, sdb et sdc ont déjà été utilisés):

[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 existe une partition (si vous ne le voyez pas, la partition n’est pas présente ou n’est pas valide):

[4984944.411497]  sdd: sdd1

Maintenant, Linux dispose de tout ce dont il a besoin et signale que les pièces jointes sont des succès:

[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 avons sdd1, mais que contient-il? , 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 qui précède était un "bon" montage. Mais le simple fait de savoir que le périphérique est sdd, ou sdc ou sdb, me permet de faire une copie binaire (en supposant que je dispose de suffisamment d'espace libre sur /mnt/backupdisk): fichier d'entrée /dev/sdd, fichier de sortie DiskImage.raw, block taille 1 Mo :

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

Remarqueque le fichier d'entrée est /dev/sdd et non /dev/sdd1 (ou tout autre nombre). Maintenant, si je le voulais, je pourrais connaître le décalage de la partition de données dans DiskImage.raw et le monter à l'aide d'un périphérique à boucle. Ici vous trouverez les détails erronés.

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 le bon fonctionnement du boîtier et donnant une chance à la nouvelle enceinte 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é. Au cas où, sauvegardez tout le contenu retrouvé du lecteur, verify la sauvegarde, mettez le disque à zéro avec un utilitaire d’écrasement de disque de sorte qu’il soit complètement dumb (vous ne pouvez pas avoir périphériques avec des opinions différentes dans une chaîne de périphériques), reformatez-le en mode natif à partir de Windows et restaurez les données. C'est un coup de chance, mais je l'ai vu arriver; et la tentative n’est pas trop onéreuse, de bonnes enceintes coûtant environ 19,99 dollars US neufs.

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, le cas échéant, remplacer l'ancien ou continuer d'utiliser le nouveau (mais cela en vaut la peine si le nouveau boîtier est assez supérieur à 19,99 $ US El Cheapo).

Récupération professionnelle

Services de récupération professionnels, ceux que vous pouvez trouver avec Google. Une façon pas trop honnête de procéder consiste à envoyer le disque physique, et au cas où vous auriez un "Oui, il n'y a aucun dommage matériel et nous pouvons récupérer toutes vos données pour seulement US $ $$$, $ $$! " répondez - bien vous devriez alors savoir que les données étaient encore récupérables. Ainsi, vous pouvez essayer de le faire vous-même gratuitement sur la sauvegarde d'image que vous avez prise, et ne payez que pour le diagnostic et le traitement du disque. Si vous échouiez, la possibilité de cracher la pâte demandée serait toujours là. S'il y a est dommage matériel, le service professionnel est fondamentalement votre seulementoption. Il existe plusieurs astuces vaudou qui vont (temporairement) faire revivre un disque "mort", souvent assez long pour récupérer au moins les données les plus importantes, mais nonedont le fonctionnement est garanti à chaque fois ( chauffer le disque, le refroidir, le "virevoltant" - j’ai même vu suggéré de le rogner intelligemment contre une surface dure). Tous feront plus de dégâts, c’est-à-dire que vous devez vous assurer d’utiliser le seul truc 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 exemples de réussite concernant des disques réactivés: là are de telles histoires. Mais si vous voulez être (surtout) sûr que cela arrivera à vous , bien - engagez un professionnel.

Si vous êtes sûr que le matériel fonctionne correctement - disques tournés, pas de bruit, pas de bourdonnements ou de sons étranges, pas de recalibrations de cliquetis - alors tout ce qui s'est passé est que chkdsk a gâché des données.

Récupération de bricolage

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

  • vérifiez si le premier secteur de l'image disque est une table de partition valide. Sinon, analysez l'image de disque à la recherche d'une table de partition valide ou d'un secteur de démarrage reconnaissable sous NTFS ou FAT32, en fonction de ce que FS était sur l'unité (pour une unité de 1 To, NTFS semble la seule possibilité logique ). De toute façon, 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 correspond à l'emplacement indiqué par la table de partition. Si ce n'est pas le cas, c'est une très bonne nouvelle: probablement la table des partitions est tout ce qui ne va pas. Il est facile de le réparer (plusieurs éditeurs de partitions Linux le feront) et le disque devrait pouvoir récupérer à 100%. Juste pour être sûr, essayez de monter la partition de données sous Linux avec un périphérique en boucle en mode lecture seule pour voir si elle est lisible. Si tel est le cas, le cliquetis de partition est confirmé et le disque peut être prononcé avant d’être complètement restauré. Si ce n'est pas le cas, la partition a peut-être raison et une partition de données a été réécrite. C'est mauvais; voir ci-dessous sous "les choses vont mal".

  • si elle est trouvée et valide, vérifiez-la par rapport à la géométrie du disque et, si elles ne correspondent pas, c'est aussi un bonchose, car vous avez peut-être trouvé la cause du problème. . Vous pouvez forcer la géométrie physique au noyau (et à l'obtenir au démarrage de Linux ). Voir si la nouvelle géométrie conduit à la reconnaissance du disque sous Linux. Si tel est le cas, sauvegardez les données, vérifiez que la sauvegarde est correcte et mettez le disque à zéro avec dd (quelques mégaoctets de zéros sont suffisants pour le périphérique sd approprié). Éteignez l'ordinateur (ne redémarrez pas; d'accord, c'est paranoïaque, mais cela ne coûte que peu d'argent et pourrait vous permettre d'accomplir quelque chose), puis démarrez Windows et demandez-lui de formater le disque désormais désemparé en ce qu'il considère comme le meilleur format. Cela garantit qu'aucun conflit avec Windows. Restaurez les données sur le disque. Prendre plaisir.

  • si le tour de la géométrie ne fonctionne pas, ou si la partition est introuvable, ou une fois trouvée, elle semble être 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é, 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 d'analyser les signatures des fichiers individual , en espérant qu'elles se trouveront dans des blocs contigus sur le disque. Je laisserais volontiers ce type d’opération à des professionnels. Je l'ai fait plusieurs fois, toujours avec succès, avec de vieux disques FAT. Je l'ai refait, environ 50% avec succès, avec des disques FAT32 plus récents, plus grands et plus fragmentés. J'ai tenté plusieurs fois, avec des résultats médiocres (mais j’avais des sauvegardes complètes et je n’allais pas tout donner), sur des systèmes de fichiers NTFS et ext4 beaucoup plus compliqués.

Récupération manuelle sous Linux

OK, vous essayez donc de monter la partition sous Linux et obtenez des erreurs ( remarquez que /dev/sdc et /dev/sdcN sont différentes choses - l'image se réfère à /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 suppose , est erronée 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 allons essayer avec every sector 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 y a un seul secteur d'amorçage (cela m'est arrivé. Sur un disque FAT32, mais still ) et qu'il n'y a aucune erreur de lecture.

Ton résultat

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

correspond exactement à ce que nous attendions: 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/sdc1 sur, disons, /tmp/mydisk.img et tenter de le réparer à partir de Linux. Cela n'endommagera pas le disque physique, qui restera disponible sans modification pour d'autres tentatives. Et maintenant que nous savons que le PT est correct, nous pouvons utiliser /dev/sdc1 pour la copie et susciter 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 avons des problèmes. Il existe cependant des utilitaires plus précis qui peuvent être essayés. Et si vous devez récupérer des fichiers image JPEG et que le système de fichiers n’est pas fragmenté, vous pouvez le faire automatiquement en recherchant les en-têtes JPEG. Pareil, presque, va pour les documents PDF, TIFF et Office, sauf queIne sais pas comment les reconnaître (pour les JPEG, je voudrais :-)). Enfin, j'ai trouvé ces types - Je ne les connais pas, je ne suis pas lié à eux et je n'accepterai aucun blâme. Cependant, au fur et à mesure, le prix est très raisonnable.

10
LSerni