#1 Le 18/04/2020, à 12:57
- Nuliel

[Résolu] Récupérer des données d'un disque dur
Bonjour,
Edit: ce post sera modifié au fur et à mesure de l'avancement de la copie
J'ouvre ce fil non pas pour demander de l'aide (c'est d'ailleurs pour cela que j'ai mis [Résolu] dans le titre) mais pour donner un retour d'expérience pour récupérer les données d'un disque dur en mauvais état (je suis encore à la copie des données mais il y aura peut être des infos utiles à des personnes dans le même cas).
Par disque source, je parle du disque défectueux que je copie.
Par disque destinataire, je parle de mon disque dur sain qui va accueillir la copie.
Situation: le disque dur interne d'un ordi fait des petits bruits (type "clic et tac", top représentation), ce qui ne présage rien de bon pour l'état du disque.
Etape 1: lorsqu'on démarre le pc, le disque se met en rotation et potentiellement use le disque un peu plus, l'idéal est donc d'ouvrir le pc, d'extraire le disque et ensuite soit mettre un ancien disque dur dans le pc ou de démarrer sur un live usb persistant (j'ai pris la solution d'un vieux disque interne que j'ai remis dans le pc afin d'avoir un linux et un windows, et tous les logiciels que j'utilise habituellement, et je préfère par rapport à un live usb persistant)
J'ai un disque dur externe usb de 1 To comme le disque interne lui aussi de 1 To que je branche en usb via un adaptateur sata/usb3 (les deux disques sont compatibles usb3 et branchés sur des ports usb3, facilement reconnaissables car ils sont bleu)
J'ai un problème au branchement du disque source: lorsque je le branche, il y a une recherche de partitions automatique, la partition la plus utile (/dev/sdc3) disparaît, et le lien vers /dev/sdc devient cassé.
La première chose à faire est de consulter le rapport smart du disque (cela indique l'état de santé du disque). Avec le problème du dessus, je l'ai lancé dès le branchement à l'ordinateur.
sudo smartctl -a /dev/sdcSi la commande donne un retour, il est utile d'enregistrer le résultat vers un fichier:
sudo smartctl -a /dev/sdc > smart.logsmartctl 6.6 2016-05-31 r4324 [x86_64-linux-4.15.0-96-generic] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF INFORMATION SECTION ===
Model Family: Toshiba 2.5" HDD MQ01ABD...
Device Model: TOSHIBA MQ01ABD100
Serial Number: Y5OYTNFVT
LU WWN Device Id: 5 000039 6a2089c32
Firmware Version: AX003J
User Capacity: 1000204886016 bytes [1,00 TB]
Sector Sizes: 512 bytes logical, 4096 bytes physical
Rotation Rate: 5400 rpm
Form Factor: 2.5 inches
Device is: In smartctl database [for details use: -P show]
ATA Version is: ATA8-ACS (minor revision not indicated)
SATA Version is: SATA 3.0, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is: Fri Apr 17 09:51:38 2020 CEST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
General SMART Values:
Offline data collection status: (0x00) Offline data collection activity
was never started.
Auto Offline Data Collection: Disabled.
Self-test execution status: ( 0) The previous self-test routine completed
without error or no self-test has ever
been run.
Total time to complete Offline
data collection: ( 120) seconds.
Offline data collection
capabilities: (0x5b) SMART execute Offline immediate.
Auto Offline data collection on/off support.
Suspend Offline collection upon new
command.
Offline surface scan supported.
Self-test supported.
No Conveyance Self-test supported.
Selective Self-test supported.
SMART capabilities: (0x0003) Saves SMART data before entering
power-saving mode.
Supports SMART auto save timer.
Error logging capability: (0x01) Error logging supported.
General Purpose Logging supported.
Short self-test routine
recommended polling time: ( 2) minutes.
Extended self-test routine
recommended polling time: ( 232) minutes.
SCT capabilities: (0x003d) SCT Status supported.
SCT Error Recovery Control supported.
SCT Feature Control supported.
SCT Data Table supported.
SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x000b 100 100 050 Pre-fail Always - 0
2 Throughput_Performance 0x0005 100 100 050 Pre-fail Offline - 0
3 Spin_Up_Time 0x0027 100 100 001 Pre-fail Always - 1437
4 Start_Stop_Count 0x0032 100 100 000 Old_age Always - 5506
5 Reallocated_Sector_Ct 0x0033 100 100 050 Pre-fail Always - 10400
7 Seek_Error_Rate 0x000b 100 100 050 Pre-fail Always - 0
8 Seek_Time_Performance 0x0005 100 100 050 Pre-fail Offline - 0
9 Power_On_Hours 0x0032 095 095 000 Old_age Always - 2157
10 Spin_Retry_Count 0x0033 208 100 030 Pre-fail Always - 0
12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 1636
191 G-Sense_Error_Rate 0x0032 100 100 000 Old_age Always - 1764
192 Power-Off_Retract_Count 0x0032 100 100 000 Old_age Always - 26
193 Load_Cycle_Count 0x0032 099 099 000 Old_age Always - 11051
194 Temperature_Celsius 0x0022 100 100 000 Old_age Always - 29 (Min/Max 9/54)
196 Reallocated_Event_Count 0x0032 100 100 000 Old_age Always - 202
197 Current_Pending_Sector 0x0032 100 100 000 Old_age Always - 1928
198 Offline_Uncorrectable 0x0030 100 100 000 Old_age Offline - 0
199 UDMA_CRC_Error_Count 0x0032 200 200 000 Old_age Always - 0
220 Disk_Shift 0x0002 100 100 000 Old_age Always - 0
222 Loaded_Hours 0x0032 096 096 000 Old_age Always - 1983
223 Load_Retry_Count 0x0032 100 100 000 Old_age Always - 0
224 Load_Friction 0x0022 100 100 000 Old_age Always - 0
226 Load-in_Time 0x0026 100 100 000 Old_age Always - 184
240 Head_Flying_Hours 0x0001 100 100 001 Pre-fail Offline - 0
SMART Error Log Version: 1
ATA Error Count: 604 (device log contains only the most recent five errors)
CR = Command Register [HEX]
FR = Features Register [HEX]
SC = Sector Count Register [HEX]
SN = Sector Number Register [HEX]
CL = Cylinder Low Register [HEX]
CH = Cylinder High Register [HEX]
DH = Device/Head Register [HEX]
DC = Device Command Register [HEX]
ER = Error register [HEX]
ST = Status register [HEX]
Powered_Up_Time is measured from power on, and printed as
DDd+hh:mm:SS.sss where DD=days, hh=hours, mm=minutes,
SS=sec, and sss=millisec. It "wraps" after 49.710 days.
Error 604 occurred at disk power-on lifetime: 2157 hours (89 days + 21 hours)
When the command that caused the error occurred, the device was active or idle.
After command completion occurred, registers were:
ER ST SC SN CL CH DH
-- -- -- -- -- -- --
40 51 08 c8 37 3a 40 Error: UNC 8 sectors at LBA = 0x003a37c8 = 3815368
Commands leading to the command that caused the error were:
CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name
-- -- -- -- -- -- -- -- ---------------- --------------------
25 da 08 c8 37 3a 40 00 00:17:37.382 READ DMA EXT
25 da 08 c8 37 3a 40 00 00:17:33.463 READ DMA EXT
25 da 08 c0 37 3a 40 00 00:17:33.463 READ DMA EXT
25 da 08 b8 37 3a 40 00 00:17:33.463 READ DMA EXT
25 da 08 b0 37 3a 40 00 00:17:33.462 READ DMA EXT
Error 603 occurred at disk power-on lifetime: 2157 hours (89 days + 21 hours)
When the command that caused the error occurred, the device was active or idle.
After command completion occurred, registers were:
ER ST SC SN CL CH DH
-- -- -- -- -- -- --
40 51 08 c8 37 3a 40 Error: UNC 8 sectors at LBA = 0x003a37c8 = 3815368
Commands leading to the command that caused the error were:
CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name
-- -- -- -- -- -- -- -- ---------------- --------------------
25 da 08 c8 37 3a 40 00 00:17:33.463 READ DMA EXT
25 da 08 c0 37 3a 40 00 00:17:33.463 READ DMA EXT
25 da 08 b8 37 3a 40 00 00:17:33.463 READ DMA EXT
25 da 08 b0 37 3a 40 00 00:17:33.462 READ DMA EXT
25 da 08 a8 37 3a 40 00 00:17:33.462 READ DMA EXT
Error 602 occurred at disk power-on lifetime: 2157 hours (89 days + 21 hours)
When the command that caused the error occurred, the device was active or idle.
After command completion occurred, registers were:
ER ST SC SN CL CH DH
-- -- -- -- -- -- --
40 51 08 98 e7 39 40 Error: UNC 8 sectors at LBA = 0x0039e798 = 3794840
Commands leading to the command that caused the error were:
CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name
-- -- -- -- -- -- -- -- ---------------- --------------------
25 da 08 98 e7 39 40 00 00:17:29.538 READ DMA EXT
25 da 08 98 e7 39 40 00 00:17:25.630 READ DMA EXT
25 da 08 90 e7 39 40 00 00:17:25.630 READ DMA EXT
25 da 08 88 e7 39 40 00 00:17:25.630 READ DMA EXT
25 da 08 80 e7 39 40 00 00:17:25.630 READ DMA EXT
Error 601 occurred at disk power-on lifetime: 2157 hours (89 days + 21 hours)
When the command that caused the error occurred, the device was active or idle.
After command completion occurred, registers were:
ER ST SC SN CL CH DH
-- -- -- -- -- -- --
40 51 08 98 e7 39 40 Error: UNC 8 sectors at LBA = 0x0039e798 = 3794840
Commands leading to the command that caused the error were:
CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name
-- -- -- -- -- -- -- -- ---------------- --------------------
25 da 08 98 e7 39 40 00 00:17:25.630 READ DMA EXT
25 da 08 90 e7 39 40 00 00:17:25.630 READ DMA EXT
25 da 08 88 e7 39 40 00 00:17:25.630 READ DMA EXT
25 da 08 80 e7 39 40 00 00:17:25.630 READ DMA EXT
25 da 08 78 e7 39 40 00 00:17:25.629 READ DMA EXT
Error 600 occurred at disk power-on lifetime: 2157 hours (89 days + 21 hours)
When the command that caused the error occurred, the device was active or idle.
After command completion occurred, registers were:
ER ST SC SN CL CH DH
-- -- -- -- -- -- --
40 51 08 70 97 39 40 Error: UNC 8 sectors at LBA = 0x00399770 = 3774320
Commands leading to the command that caused the error were:
CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name
-- -- -- -- -- -- -- -- ---------------- --------------------
25 da 08 70 97 39 40 00 00:17:21.705 READ DMA EXT
25 da 08 70 97 39 40 00 00:17:17.795 READ DMA EXT
25 da 08 68 97 39 40 00 00:17:17.795 READ DMA EXT
25 da 08 60 97 39 40 00 00:17:17.795 READ DMA EXT
25 da 08 58 97 39 40 00 00:17:17.795 READ DMA EXT
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Short offline Completed without error 00% 941 -
# 2 Short offline Completed without error 00% 210 -
SMART Selective self-test log data structure revision number 1
SPAN MIN_LBA MAX_LBA CURRENT_TEST_STATUS
1 0 0 Not_testing
2 0 0 Not_testing
3 0 0 Not_testing
4 0 0 Not_testing
5 0 0 Not_testing
Selective self-test flags (0x0):
After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.Dans ce rapport smart, on voit qu'il y a beaucoup de secteurs défectueux, en attente de réallocation et de secteurs réalloués.
La deuxième chose à faire est de regarder le retour de
sudo fdisk -lDe même, il est aussi utile d'enregistrer le résultat vers un fichier:
sudo fdisk -l > fdisk.logDisque /dev/sda : 298,1 GiB, 320072933376 octets, 625142448 secteurs
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 4096 octets
taille d'E/S (minimale / optimale) : 4096 octets / 4096 octets
Type d'étiquette de disque : dos
Identifiant de disque : 0x2aaa33ae
Périphérique Amorçage Début Fin Secteurs Taille Id Type
/dev/sda1 * 2048 1026047 1024000 500M 7 HPFS/NTFS/exFAT
/dev/sda2 1026048 325703679 324677632 154,8G 7 HPFS/NTFS/exFAT
/dev/sda3 325705726 625141759 299436034 142,8G 5 Étendue
/dev/sda5 325705728 625141759 299436032 142,8G 83 Linux
Disque /dev/sdb : 931,5 GiB, 1000170586112 octets, 1953458176 secteurs
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Type d'étiquette de disque : gpt
Identifiant de disque : 674F14BD-2979-4FA7-ACA6-D7624D39ED29
Périphérique Début Fin Secteurs Taille Type
/dev/sdb1 2048 1953456127 1953454080 931,5G Données de base Microsoft
Disque /dev/sdc : 931,5 GiB, 1000204886016 octets, 1953525168 secteurs
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 4096 octets
taille d'E/S (minimale / optimale) : 4096 octets / 4096 octets
Type d'étiquette de disque : gpt
Identifiant de disque : 5821A566-C4AC-4B9B-8990-EDF132D46699
Périphérique Début Fin Secteurs Taille Type
/dev/sdc1 2048 206847 204800 100M Système EFI
/dev/sdc2 206848 239615 32768 16M Réservé Microsoft
/dev/sdc3 239616 1951731485 1951491870 930,6G Données de base Microsoft
/dev/sdc4 1951731712 1953523711 1792000 875M Environnement de récupération WindowsOn voit deux choses sur ce retour:
1) Les secteurs physiques du disque source (ici /dev/sdc) ont une taille de 4096 octets, il faudra donc passer -b 4096 pour limiter le nombre d'accès au disque source
2) il y a un peu plus de place sur le disque source que sur le disque destinataire (environ 24 Mo). Si la table de partition est bonne, ce n'est pas grave car les 24 Mo de trop viennent d'une partition de récupération windows. Mais cela va poser problème après.
Pour éviter de débrancher brutalement les disques, j'ai utilisé
sudo hdparm -Y /dev/sdXavant de les débrancher.
Copie:
Viens le temps de la copie. On utilise ddrescue qui, à la différence de dd, va faire des sauts pour éviter les zones trop endommagées et copier un maximum de données, puis repasse pour en copier un peu plus... Je ne détaillerai pas l'algorithme de ddrescue, je vous laisse vous référer à
info ddrescueLe format de la commande est
ddrescue source destination fichierlogIl est très important de renseigner un fichier de log (ou fichier mapfile), sinon ddrescue ne saura pas reprendre une copie arrêtée (pour info une copie dure plusieurs jours)
Les noms /dev/sdX pouvant changer, on va utiliser les noms issu de
ls -l /dev/disk/by-idLe disque source est un Toshiba, et le disque destination est le disque usb WD_elements
La commande adaptée sera donc:
sudo ddrescue -f /dev/disk/by-id/ata-TOSHIBA_MQ01ABD100_Y5OYTNFVT /dev/disk/by-id/usb-WD_Elements_25A2_5758363141343838364A4A34-0:0 ddrescue.logJ'ai choisi de copier le disque entier et non juste la grosse partition avec les données pour deux raisons:
- /dev/sdc3 a une certaine tendance à disparaître (on peut se passer de /dev/sdc3 avec le paramètre -i ipos où ipos est à remplacer par la position du début de partition)
- la table de partition est elle vraiment correcte?
Après avoir attendu pas mal de temps, ddrescue a réussi à copier 200 Gb et le disque commence à faire des bruits, donc j'ai décidé d'arrêter ddrescue et de le relancer avec -i 500GB (j'espérais que les secteurs illisibles soient regroupés). 500GB est ici arbitraire, j'ai d'abord testé 350GB, puis 400GB et comme c'était lent, je suis passé à 500GB. Avec cette idée j'ai copié la moitié du disque en un temps record! (500 Gb en 2h!). Les secteurs illisibles sont donc regroupés dans une grande zone de 170 Gb. Toujours avec l'option -i, j'ai passé la zone où le disque commence à faire des cliquetis, et ça tourne tranquillement.
J'ai rencontré une erreur d'écriture à cause du manque de place sur le disque destinataire, je l'évite actuellement avec les paramètres -i pour indiquer à quel endroit commencer la copie et -s pour limiter la zone de copie.
Je suis en train d'essayer le paramètre -K: il permet d'ajuster la taille des sauts que fait ddrescue. J'ai donc passé -K 1GB (brutal mais s'il y a une zone sans problème dedans je vais pouvoir la copier rapidement). Et je compte affiner lorsque la zone des 170 Gb sera passée. J'ai aussi modifié le fichier de log en indiquant "passe 1" à deux endroits dans le doute.
Pour l'instant les sauts de 1 Gb est très efficace: j'ai un transfert moyen de 27 Mb.
Lorsque cette passe sera effectuée, je passerai à des sauts de 100 Mb.
Bon, il reste encore 86 Go à récupérer, mais le disque a maintenant un drapeau FAILING_NOW sur reallocated sectors.
Afin d'aller le plus rapidement et de récupérer le plus possible, je ne fais pas de passe backward mais que du forward (en terme de vitesse c'est bien mieux, mais je pense que cela n'a de sens que lorsqu'il reste de gros volumes en non tried)
Au final avec cette idée des sauts de 1 Go puis 100Mo, on voit à certains endroits des motifs se dessiner avec les secteurs qui n'ont pas été lu (généralement en diagonale, toujours à la même distance). Ce serait intéressant que ddrescue propose cette approche: faire des grands sauts de 1 Go puis des sauts de 100 Mo lorsqu'un secteur illisible est atteint, puis extrapoler l'emplacement des secteurs illisibles afin d'avoir les emplacements possibles d'autres secteurs illisibles, peut être que cela améliorerait la vitesse de la copie, et s'attaquer en priorité aux zones sans trop de secteurs illisibles (si quelqu'un veut bien confirmer cela).
J'ai enlevé tous les paramètres, j'ai juste repassé en passe 1 et j'ai changé le pointeur vers les endroits qui m'intéressent (le paramètre -i est censé le faire mais je trouve que c'est plus simple bien que plus risqué de modifier le fichier de log). Il me reste 62.5 Go et sont regroupés dans une zone contenant beaucoup de secteurs illisibles. Là va falloir être patient!
Dernière modification par Nuliel (Le 18/04/2020, à 18:27)
[ poster un retour de commande ] [ poster une photo ]
Thinkpad x220, Dell latitude E7270 (i7 6600U, 16 Go de RAM, ...), Thinkstation E32 modifié: i5-4570, GTX 1060 6 Gb, 16 Gb de RAM, ...
Mon nouveau blog: nuliel.fr
Hors ligne
#2 Le 18/04/2020, à 19:36
- Compte supprimé
Re : [Résolu] Récupérer des données d'un disque dur
Bonjour Naziel.
Tu devrais regarder dans dmesg ce qu'il s'y passe.
dmesg | grep -i errorPersonnellement je copie la partition défectueuse dans un «fichier.dd» avec la commande dd sur un disque dur de capacité convenable pour la taille de ma partition…
À+
#3 Le 18/04/2020, à 20:22
- Nuliel

Re : [Résolu] Récupérer des données d'un disque dur
C'est la fête des erreurs de lecture et de buffer dans le dmesg (d'ailleurs ces erreurs viennent polluer le tty1 où j'ai lancé ddrescue) mais ça s'explique facilement vu le nombre de secteurs défectueux. (une erreur apparaît toutes les 2 min voire plus souvent) De toute façon actuellement le but c'est de sauver un maximum de données sans pour l'instant insister (toujours la phase 1 en forward). Là j'ai encore 57,66 Go à copier en non tried mais cette partie est assez abîmée, donc on peut pas faire grand chose pour récupérer plus rapidement.
C'est une partition de 930 Go, autant sur 200 Go je veux bien en faire un fichier mais 930 Go pour un fichier c'est beaucoup, surtout qu'après il faudra que je le corrige pour avoir accès aux données de cette partition, et je me souviens avoir essayé de modifier un fichier monté en /dev/loop et ça avait du mal lors des modifs, après je m'y prenais aussi sûrement mal (je découvrais les commandes losetup et autres)
L'avantage de ddrescue par rapport à dd est qu'il n'insiste pas pour lire des secteurs et ne va pas s'arrêter sur des erreurs mais tenter sa chance sur d'autres portions pas encore récupérées.
J'ai peur que la mft et sa backup soit touché, elles sont identiques d'après testdisk mais ne contiennent presque rien (dossier intel et dossier recycle.bin)
[ poster un retour de commande ] [ poster une photo ]
Thinkpad x220, Dell latitude E7270 (i7 6600U, 16 Go de RAM, ...), Thinkstation E32 modifié: i5-4570, GTX 1060 6 Gb, 16 Gb de RAM, ...
Mon nouveau blog: nuliel.fr
Hors ligne
#4 Le 19/04/2020, à 00:18
- geole
Re : [Résolu] Récupérer des données d'un disque dur
Bonjour,
J'ai choisi de copier le disque entier et non juste la grosse partition avec les données pour deux raisons:
Bonsoir
Très mauvais choix. Il n'est à faire que lorsque la table de partition n'est plus lisible.
Lorsqu'il y a des partitions, il est préférable de ne pas tenter de récupérer le logiciel . Cela risque de ne pas marcher à 100% de plus on en trouve partout . Dans ton contexte, la mécanique semble en bon état.
1 Raw_Read_Error_Rate 0x000b 100 100 050 Pre-fail Always - 0
2 Throughput_Performance 0x0005 100 100 050 Pre-fail Offline - 0 Donc pas trop grave.
Il est nettement préférable de commencer par les partitions contenant les données. Si plusieurs partitions de données, commencer par celle jugée la plus importante .
NOTA: Pourtant tu le sais. Mais tu ne l'as pas fait!!
1) Les secteurs physiques du disque source (ici /dev/sdc) ont une taille de 4096 octets, il faudra donc passer -b 4096 pour limiter le nombre d'accès au disque sourceDernière modification par geole (Le 19/04/2020, à 00:23)
Hors ligne
#5 Le 19/04/2020, à 00:30
- geole
Re : [Résolu] Récupérer des données d'un disque dur
Bonjour
Obligé de rectifier cette erreur pour ceux qui liraient
Bonjour Naziel.
Tu devrais regarder dans dmesg ce qu'il s'y passe.dmesg | grep -i errorPersonnellement je copie la partition défectueuse dans un «fichier.dd» avec la commande dd ddrescue sur un disque dur de capacité convenable pour la taille de ma partition…
À+
Hors ligne
#6 Le 19/04/2020, à 09:49
- Nuliel

Re : [Résolu] Récupérer des données d'un disque dur
Merci geole.
Pour -b 4096 je le sais mais je l'ai oublié (je m'en suis rendu compte après 700 Go de récupéré, un peu tard)
Ok, je ne savais pas la confiance que je pouvais avoir dans la table de partitions avec tous les secteurs réalloués, ça m'aurait évité le problème de place en plus. Après je ne pensais pas au paramètre -i à ce moment là (et je connaissais pas -s), je ne pensais qu'à /dev/sdc3, c'est après que j'ai creusé de ce côté là. Mais c'est clair que c'est à préférer si on est sûr que la table de partition est bonne.
Par ailleurs j'ai découvert quelques outils:
- sleuthkit associé à analyseMFT qui permet de voir le contenu de la MFT
- ddru_ntfsbitmap qui est dans ddrutility qui permet de créer un mapfile pour ddrescue afin de récupérer la zone allouée aux données
Dernière modification par Nuliel (Le 19/04/2020, à 09:53)
[ poster un retour de commande ] [ poster une photo ]
Thinkpad x220, Dell latitude E7270 (i7 6600U, 16 Go de RAM, ...), Thinkstation E32 modifié: i5-4570, GTX 1060 6 Gb, 16 Gb de RAM, ...
Mon nouveau blog: nuliel.fr
Hors ligne
#7 Le 19/04/2020, à 10:07
- Compte supprimé
Re : [Résolu] Récupérer des données d'un disque dur
Bonjour geole.
Je ne connais pas ddrescue depuis suffisamment longtemps …
La dernière fois que j'ai copié une partition dans un fichier, je l'ai fait avec dd à l'époque… ![]()
édit :
du genre :
sudo dd if=/dev/sdb_fail of=fichier.dd bs=4MIl y avais peut-être d'autres options mais j'ai oublié depuis…
Dernière modification par Compte supprimé (Le 19/04/2020, à 10:20)
#8 Le 19/04/2020, à 10:41
- Nuliel

Re : [Résolu] Récupérer des données d'un disque dur
Pour l'instant je vois que testdisk ne voit toujours pas le dossier utilisateur, alors que j'arrive à extraire manuellement des données avec icat (la mft est ok)
Il reste encore 48,75 Go à récupérer.
Dernière modification par Nuliel (Le 19/04/2020, à 10:41)
[ poster un retour de commande ] [ poster une photo ]
Thinkpad x220, Dell latitude E7270 (i7 6600U, 16 Go de RAM, ...), Thinkstation E32 modifié: i5-4570, GTX 1060 6 Gb, 16 Gb de RAM, ...
Mon nouveau blog: nuliel.fr
Hors ligne
#9 Le 19/04/2020, à 10:42
- geole
Re : [Résolu] Récupérer des données d'un disque dur
Bonjour
Pour l'oubli de 4096, tant que ddrescue copie par gros paquet, cela ne gène pas.
Je n'ai pas totalement réussi à savoir qu'elle était la taille standard du gros paquet (65536 Octets ou 128 secteurs). Dans le doute, lorsque l'unité physique n'est pas 512, j'aurais aussi tendance à préciser le nombre de secteurs à sauter.
Le problème est plus gênant au moment de récupérer les secteurs H.S., Il va vouloir récupérer des secteurs de 512 Octets. Comme la taille physique contient 8 secteurs, il va aussi tenter inutilement les sept secteurs suivants d'où grosse perte de temps surtout qu'ils sont nombreux et échauffement inutile du disque. Nota: Si le disque chauffe trop, il "disparaît", Il suffit d'attendre quelques heures pour qu'il refroidisse de façon normale (pas de frigidaire) (Il ne faut surtout plus dire que la taille fait 4096 sous peine de tout devoir recommencer)
Pour les partitions NTFS
Souvent, la fin de la partition ne contient aucune donnée. (Windows préfère fragmenter plutôt que d'étaler.....)
Donc le fait que ton disque de réception soit un peu plus petit ne devrait pas avoir d'impact. (du moins me semble-t-il)
Sinon, mets le paramètre disant le nombre de secteurs à copier afin qu'il puisse faire les étapes finales.
Effectivement, il existe quelques utilitaires permettant de vérifier que la structure des répertoires est cohérente. (Mais je n'ai pas pratiqué).
Ils sont à utiliser avec le disque de sortie.
Lorsque ce niveau est atteint on peut envisager d'arrêter de tenter de '"gratter" les derniers secteurs.
Si on ne peut pas atteindre cette étape, la suite sera certainement du photorec. Donc ne pas oublier de finaliser en mettant des zéros dans les secteurs non copiés pour éviter la récupération des vieilles données du disque de réception.
J'espère que tu avais vérifié l'état physique du disque de réception avant de commencer la copie.
Bon courage.
Bonjour L_d_v_c
Lorsqu'on sait que le disque est en bon état, la commande dd est assurément à utiliser car plus facile à coder. C'est le cas le plus fréquent.
Lorsqu'on ne sait pas trop, cette commande se plante si incident de lecture et ne va pas au bout. Donc elle peut exceptionnellement fonctionner si les quelques erreurs réussissent à se réparer. Cela doit être rare.
Hors ligne
#10 Le 19/04/2020, à 10:49
- Compte supprimé
Re : [Résolu] Récupérer des données d'un disque dur
Pardon Naziel, j'ai besoin de demander à geole :
Bonjour L_d_v_c
Lorsqu'on sait que le disque est en bon état, la commande dd est assurément à utiliser car plus facile à coder. C'est le cas le plus fréquent.
Lorsqu'on ne sait pas trop, cette commande se plante si incident de lecture et ne va pas au bout. Donc elle peut exceptionnellement fonctionner si les quelques erreurs réussissent à se réparer. Cela doit être rare.
Re-salut geole.
Donc ddrescue est préférable à dd dans le cadre général de la récupération de données ?
En plus que ddrescue est plus bavard que dd…
Merci.
#11 Le 19/04/2020, à 10:52
- geole
Re : [Résolu] Récupérer des données d'un disque dur
Pour l'instant je vois que testdisk ne voit toujours pas le dossier utilisateur, alors que j'arrive à extraire manuellement des données avec icat (la mft est ok)
Il reste encore 48,75 Go à récupérer.
Dans le contexte mft ok, tu pourrais essayer ces actions
a) Dupliquer ta copie sur un autre disque de sauvegarde
b) Lancer windows pour qu'il analyse le disque de copie actuelle (pas le disque de copie de sauvegarde) avec CHKDSK
Il remet plus ou mois en état.
c) Si la remise en état est bonne. C'est réglé.
d) Si la remise en état est mauvaise,
Tu réécrase ta copie avec la copie de sauvegarde qui a été préservée.
Tu repars à la recherche d'autre secteurs. Mais je sais (Cependant, je sais pas guider) qu'avec la pmap, tu devrais obtenir la liste des secteurs manquants pour avoir une table de description opérationnelle. Tu peux alors cibler uniquement la récupération de ces secteurs ..
Dernière modification par geole (Le 19/04/2020, à 10:53)
Hors ligne
#12 Le 19/04/2020, à 10:52
- Nuliel

Re : [Résolu] Récupérer des données d'un disque dur
Il arrive que le disque disparaît, je relance ddrescue et ça repart. Je n'ai pas de problème d'échauffement de disque.
Si testdisk ne permet pas de naviguer dans le répertoire utilisateur actuellement, s'il n'y arrive pas le mieux serait de reconstituer la structure des dossiers en utilisant la MFT et icat (en tout cas les outils sleuthkit que je trouve bien cool). Ce qui permettra de récupérer la structure et les noms.
J'ai oublié de préciser mais analyseMFT est gourmand et produit un gros fichier csv (550 Mo)
Oui j'ai oublié de préciser, le disque destination est neuf.
Il faudrait que je vois les données impactées par les zones pas récupérées par ddrescue afin de savoir où gratter en priorité
Dernière modification par Nuliel (Le 19/04/2020, à 10:53)
[ poster un retour de commande ] [ poster une photo ]
Thinkpad x220, Dell latitude E7270 (i7 6600U, 16 Go de RAM, ...), Thinkstation E32 modifié: i5-4570, GTX 1060 6 Gb, 16 Gb de RAM, ...
Mon nouveau blog: nuliel.fr
Hors ligne
#13 Le 19/04/2020, à 11:07
- geole
Re : [Résolu] Récupérer des données d'un disque dur
Re-salut geole.
Donc ddrescue est préférable à dd dans le cadre général de la récupération de données ?
En plus que ddrescue est plus bavard que dd…
Merci.
Un peu de documentation sur dd ( https://doc.ubuntu-fr.org/dd)
"Introduction
La commande dd permet de copier tout ou partie d'un disque —- EN BON ETAT par blocs d'octets, indépendamment de la structure du contenu du disque en fichiers et en répertoires.
Pour dupliquer un disque, il est préférable d'utiliser la commande ddrescue ( ddrescue ) qui dispose d'une possibilité de reprise en cas d'arrêt intempestif."
On y voit déjà que le disque doit être en bon état pour qu'elle soit utilisée.
Sans le dire expressément, elle semble être déconseillée même pour un disque en bon état si la copie peut durer un certain temps, spécialement si le disque à une taille de 8 To
Un peu de documentation sur ddrescue ( https://doc.ubuntu-fr.org/ddrescue )
" GNU ddrescue (abrégé ici en ddrescue) est un outil de récupération de données sous licence GNU GPL.
ddrescue copie les données d'un fichier ou disque (disque dur, SSD, CD-ROM, etc.) vers un autre. À la différence de dd qui lit les données séquentiellement, ddrescue saute les zones endommagées dont la lecture est lente afin de récupérer rapidement un maximum de données. Il revient ensuite récupérer ce qui peut l'être dans les zones endommagées. Il est donc particulièrement adapté pour sauvegarder un disque dur en fin de vie, qui peut cesser de fonctionner avant la fin de la récupération. "
On voit qu'il est adapté aux disques ayant des secteurs défaillants.
Hors ligne
#14 Le 19/04/2020, à 11:15
- Compte supprimé
Re : [Résolu] Récupérer des données d'un disque dur
Merci geole ![]()
#15 Le 19/04/2020, à 13:00
- Nuliel

Re : [Résolu] Récupérer des données d'un disque dur
J'en ai eu marre des erreurs de ddrescue pour les 35 Mo de trop en fin de disque, du coup j'ai modifié le fichier de log pour mettre un + à la place de ? en fin de fichier pour que cette partie soit considérée comme récupérée.
La passe 1 forward est finie, on passe à la phase 2 backward. Il reste 43 Go à récupérer.
Dernière modification par Nuliel (Le 19/04/2020, à 13:02)
[ poster un retour de commande ] [ poster une photo ]
Thinkpad x220, Dell latitude E7270 (i7 6600U, 16 Go de RAM, ...), Thinkstation E32 modifié: i5-4570, GTX 1060 6 Gb, 16 Gb de RAM, ...
Mon nouveau blog: nuliel.fr
Hors ligne
#16 Le 19/04/2020, à 14:20
- Nuliel

Re : [Résolu] Récupérer des données d'un disque dur
Alors je viens de regarder un peu la structure du système NTFS à l'aide de
sudo istat -f ntfs -o 239616 /dev/sdb 0(239616 est l'offset de la partition, et 0 est l'enregistrement numéro 0, en anglais record 0)
Les enregistrements 0 et 1 sont la MFT ainsi que MFTMirr, mais je suis surpris sur MFTMirr:
MFT Entry Header Values:
Entry: 1 Sequence: 1
$LogFile Sequence Number: 33559286
Allocated File
Links: 1
$STANDARD_INFORMATION Attribute Values:
Flags: Hidden, System
Owner ID: 0
Security ID: 256 ()
Created: 2015-12-07 19:02:38.206169600 (CET)
File Modified: 2015-12-07 19:02:38.206169600 (CET)
MFT Modified: 2015-12-07 19:02:38.206169600 (CET)
Accessed: 2015-12-07 19:02:38.206169600 (CET)
$FILE_NAME Attribute Values:
Flags: Hidden, System
Name: $MFTMirr
Parent MFT Entry: 5 Sequence: 5
Allocated Size: 4096 Actual Size: 4096
Created: 2015-12-07 19:02:38.206169600 (CET)
File Modified: 2015-12-07 19:02:38.206169600 (CET)
MFT Modified: 2015-12-07 19:02:38.206169600 (CET)
Accessed: 2015-12-07 19:02:38.206169600 (CET)
Attributes:
Type: $STANDARD_INFORMATION (16-0) Name: N/A Resident size: 72
Type: $FILE_NAME (48-2) Name: N/A Resident size: 82
Type: $DATA (128-1) Name: N/A Non-Resident size: 4096 init_size: 4096
2On voit que MFTMirr n'a pas du tout la même taille que la MFT, et effectivement wikipedia le dit:
Duplicate of the first vital entries of $MFT, usually 4 entries
Du coup ce n'est pas une backup entière de la MFT.
testdisk ne voit toujours pas les données en faisant list files. Mais il manque toujours 42,27 Go
[ poster un retour de commande ] [ poster une photo ]
Thinkpad x220, Dell latitude E7270 (i7 6600U, 16 Go de RAM, ...), Thinkstation E32 modifié: i5-4570, GTX 1060 6 Gb, 16 Gb de RAM, ...
Mon nouveau blog: nuliel.fr
Hors ligne
#17 Le 19/04/2020, à 14:38
- moko138
Re : [Résolu] Récupérer des données d'un disque dur
J'ai un problème au branchement du disque source: lorsque je le branche, il y a une recherche de partitions automatique
/!\ Il est important, quand un support est abîmé, de lui épargner les tentatives de montage automatique.
Explications détaillées là : Récupération de données - Importance de débrancher le disque.
Donc, dès qu'on suspecte un support dégradé, la première chose à faire est d'aller dans les préférences du gestionnaire de fichiers pour y désactiver le montage automatique.
Personnellement, j'ai fait le choix de désactiver en permanence le montage automatique :
- ça préserve le disque et les systèmes de fichiers (FS) en cas de support dégradé ;
- ça me permet (comme mes DDE ont souvent plusieurs partitions) de choisir laquelle monter (si je désire en monter une) ;
- ça me coûte l'effort héroïque d'un clic au montage (quand le FS choisi est sain).
%NOINDEX%
Un utilitaire précieux : ncdu
Photo, mini-tutoriel : À la découverte de dcraw
Hors ligne
#18 Le 19/04/2020, à 15:20
- Nuliel

Re : [Résolu] Récupérer des données d'un disque dur
Par recherche de partitions automatique, je voulais parler du fait qu'il y a une recherche des partitions sur le disque ce qui permet d'avoir les noms /dev/sdcX qu'on ne peut pas éviter d'après mes recherches, mais j'ai bien désactivé le montage automatique.
De même, j'ai tendance à désactiver le montage automatique, je n'aime pas forcément quand une fenêtre s'ouvre parce que j'ai branché une clé usb
[ poster un retour de commande ] [ poster une photo ]
Thinkpad x220, Dell latitude E7270 (i7 6600U, 16 Go de RAM, ...), Thinkstation E32 modifié: i5-4570, GTX 1060 6 Gb, 16 Gb de RAM, ...
Mon nouveau blog: nuliel.fr
Hors ligne
#19 Le 19/04/2020, à 16:11
- Nuliel

Re : [Résolu] Récupérer des données d'un disque dur
Voici le rapport smart actuel:
~$ sudo smartctl -a /dev/sdc
[sudo] Mot de passe de naziel :
smartctl 6.6 2016-05-31 r4324 [x86_64-linux-4.15.0-96-generic] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF INFORMATION SECTION ===
Model Family: Toshiba 2.5" HDD MQ01ABD...
Device Model: TOSHIBA MQ01ABD100
Serial Number: Y5OYTNFVT
LU WWN Device Id: 5 000039 6a2089c32
Firmware Version: AX003J
User Capacity: 1000204886016 bytes [1,00 TB]
Sector Sizes: 512 bytes logical, 4096 bytes physical
Rotation Rate: 5400 rpm
Form Factor: 2.5 inches
Device is: In smartctl database [for details use: -P show]
ATA Version is: ATA8-ACS (minor revision not indicated)
SATA Version is: SATA 3.0, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is: Sun Apr 19 17:08:21 2020 CEST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: FAILED!
Drive failure expected in less than 24 hours. SAVE ALL DATA.
See vendor-specific Attribute list for failed Attributes.
General SMART Values:
Offline data collection status: (0x00) Offline data collection activity
was never started.
Auto Offline Data Collection: Disabled.
Self-test execution status: ( 0) The previous self-test routine completed
without error or no self-test has ever
been run.
Total time to complete Offline
data collection: ( 120) seconds.
Offline data collection
capabilities: (0x5b) SMART execute Offline immediate.
Auto Offline data collection on/off support.
Suspend Offline collection upon new
command.
Offline surface scan supported.
Self-test supported.
No Conveyance Self-test supported.
Selective Self-test supported.
SMART capabilities: (0x0003) Saves SMART data before entering
power-saving mode.
Supports SMART auto save timer.
Error logging capability: (0x01) Error logging supported.
General Purpose Logging supported.
Short self-test routine
recommended polling time: ( 2) minutes.
Extended self-test routine
recommended polling time: ( 232) minutes.
SCT capabilities: (0x003d) SCT Status supported.
SCT Error Recovery Control supported.
SCT Feature Control supported.
SCT Data Table supported.
SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x000b 100 100 050 Pre-fail Always - 0
2 Throughput_Performance 0x0005 100 100 050 Pre-fail Offline - 0
3 Spin_Up_Time 0x0027 100 100 001 Pre-fail Always - 1752
4 Start_Stop_Count 0x0032 100 100 000 Old_age Always - 5582
5 Reallocated_Sector_Ct 0x0033 001 001 050 Pre-fail Always FAILING_NOW 16376
7 Seek_Error_Rate 0x000b 100 100 050 Pre-fail Always - 0
8 Seek_Time_Performance 0x0005 100 100 050 Pre-fail Offline - 0
9 Power_On_Hours 0x0032 095 095 000 Old_age Always - 2186
10 Spin_Retry_Count 0x0033 209 100 030 Pre-fail Always - 0
12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 1646
191 G-Sense_Error_Rate 0x0032 100 100 000 Old_age Always - 1764
192 Power-Off_Retract_Count 0x0032 100 100 000 Old_age Always - 32
193 Load_Cycle_Count 0x0032 099 099 000 Old_age Always - 11176
194 Temperature_Celsius 0x0022 100 100 000 Old_age Always - 33 (Min/Max 9/54)
196 Reallocated_Event_Count 0x0032 100 100 000 Old_age Always - 891
197 Current_Pending_Sector 0x0032 100 100 000 Old_age Always - 0
198 Offline_Uncorrectable 0x0030 100 100 000 Old_age Offline - 0
199 UDMA_CRC_Error_Count 0x0032 200 200 000 Old_age Always - 0
220 Disk_Shift 0x0002 100 100 000 Old_age Always - 0
222 Loaded_Hours 0x0032 095 095 000 Old_age Always - 2009
223 Load_Retry_Count 0x0032 100 100 000 Old_age Always - 0
224 Load_Friction 0x0022 100 100 000 Old_age Always - 0
226 Load-in_Time 0x0026 100 100 000 Old_age Always - 169661
240 Head_Flying_Hours 0x0001 100 100 001 Pre-fail Offline - 0
SMART Error Log Version: 1
ATA Error Count: 16359 (device log contains only the most recent five errors)
CR = Command Register [HEX]
FR = Features Register [HEX]
SC = Sector Count Register [HEX]
SN = Sector Number Register [HEX]
CL = Cylinder Low Register [HEX]
CH = Cylinder High Register [HEX]
DH = Device/Head Register [HEX]
DC = Device Command Register [HEX]
ER = Error register [HEX]
ST = Status register [HEX]
Powered_Up_Time is measured from power on, and printed as
DDd+hh:mm:SS.sss where DD=days, hh=hours, mm=minutes,
SS=sec, and sss=millisec. It "wraps" after 49.710 days.
Error 16359 occurred at disk power-on lifetime: 2186 hours (91 days + 2 hours)
When the command that caused the error occurred, the device was active or idle.
After command completion occurred, registers were:
ER ST SC SN CL CH DH
-- -- -- -- -- -- --
40 51 08 78 96 67 4e Error: UNC 8 sectors at LBA = 0x0e679678 = 241669752
Commands leading to the command that caused the error were:
CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name
-- -- -- -- -- -- -- -- ---------------- --------------------
25 00 08 78 96 67 40 00 07:58:41.554 READ DMA EXT
ec 00 01 00 00 00 00 00 07:58:41.553 IDENTIFY DEVICE
25 da 08 78 96 67 40 00 07:58:37.693 READ DMA EXT
25 da 08 70 96 67 40 00 07:58:37.693 READ DMA EXT
25 da 08 68 96 67 40 00 07:58:37.693 READ DMA EXT
Error 16358 occurred at disk power-on lifetime: 2186 hours (91 days + 2 hours)
When the command that caused the error occurred, the device was active or idle.
After command completion occurred, registers were:
ER ST SC SN CL CH DH
-- -- -- -- -- -- --
40 51 08 78 96 67 4e Error: UNC 8 sectors at LBA = 0x0e679678 = 241669752
Commands leading to the command that caused the error were:
CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name
-- -- -- -- -- -- -- -- ---------------- --------------------
25 da 08 78 96 67 40 00 07:58:37.693 READ DMA EXT
25 da 08 70 96 67 40 00 07:58:37.693 READ DMA EXT
25 da 08 68 96 67 40 00 07:58:37.693 READ DMA EXT
25 da 08 60 96 67 40 00 07:58:37.693 READ DMA EXT
25 da 08 58 96 67 40 00 07:58:37.693 READ DMA EXT
Error 16357 occurred at disk power-on lifetime: 2186 hours (91 days + 2 hours)
When the command that caused the error occurred, the device was active or idle.
After command completion occurred, registers were:
ER ST SC SN CL CH DH
-- -- -- -- -- -- --
40 51 08 38 c9 68 4e Error: UNC 8 sectors at LBA = 0x0e68c938 = 241748280
Commands leading to the command that caused the error were:
CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name
-- -- -- -- -- -- -- -- ---------------- --------------------
25 da 08 38 c9 68 40 00 07:58:30.108 READ DMA EXT
25 da 08 38 c9 68 40 00 07:58:26.245 READ DMA EXT
25 da 08 30 c9 68 40 00 07:58:26.156 READ DMA EXT
25 da 08 28 c9 68 40 00 07:58:26.145 READ DMA EXT
25 da 08 20 c9 68 40 00 07:58:26.145 READ DMA EXT
Error 16356 occurred at disk power-on lifetime: 2186 hours (91 days + 2 hours)
When the command that caused the error occurred, the device was active or idle.
After command completion occurred, registers were:
ER ST SC SN CL CH DH
-- -- -- -- -- -- --
40 51 08 38 c9 68 4e Error: UNC 8 sectors at LBA = 0x0e68c938 = 241748280
Commands leading to the command that caused the error were:
CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name
-- -- -- -- -- -- -- -- ---------------- --------------------
25 da 08 38 c9 68 40 00 07:58:26.245 READ DMA EXT
25 da 08 30 c9 68 40 00 07:58:26.156 READ DMA EXT
25 da 08 28 c9 68 40 00 07:58:26.145 READ DMA EXT
25 da 08 20 c9 68 40 00 07:58:26.145 READ DMA EXT
25 da 08 18 c9 68 40 00 07:58:26.134 READ DMA EXT
Error 16355 occurred at disk power-on lifetime: 2186 hours (91 days + 2 hours)
When the command that caused the error occurred, the device was active or idle.
After command completion occurred, registers were:
ER ST SC SN CL CH DH
-- -- -- -- -- -- --
40 51 08 a8 e2 6c 4e Error: UNC 8 sectors at LBA = 0x0e6ce2a8 = 242016936
Commands leading to the command that caused the error were:
CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name
-- -- -- -- -- -- -- -- ---------------- --------------------
25 da 08 a8 e2 6c 40 00 07:58:19.063 READ DMA EXT
25 da 08 a8 e2 6c 40 00 07:58:15.215 READ DMA EXT
25 da 08 a0 e2 6c 40 00 07:58:15.182 READ DMA EXT
25 da 08 98 e2 6c 40 00 07:58:15.148 READ DMA EXT
25 da 08 90 e2 6c 40 00 07:58:15.137 READ DMA EXT
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Short offline Completed without error 00% 941 -
# 2 Short offline Completed without error 00% 210 -
SMART Selective self-test log data structure revision number 1
SPAN MIN_LBA MAX_LBA CURRENT_TEST_STATUS
1 0 0 Not_testing
2 0 0 Not_testing
3 0 0 Not_testing
4 0 0 Not_testing
5 0 0 Not_testing
Selective self-test flags (0x0):
After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.J'imagine qu'en parcourant tout le disque, des secteurs défectueux sont apparus.
Je posterai le ddrescue.log quand la copie sera finie (ou quand ce sera suffisant)
Et par curiosité j'ai regardé ce que donne ddru_ntfsbitmap et la mapfile correspond à la partition entière... (ou je l'ai mal utilisé)
Dernière modification par Nuliel (Le 19/04/2020, à 16:23)
[ poster un retour de commande ] [ poster une photo ]
Thinkpad x220, Dell latitude E7270 (i7 6600U, 16 Go de RAM, ...), Thinkstation E32 modifié: i5-4570, GTX 1060 6 Gb, 16 Gb de RAM, ...
Mon nouveau blog: nuliel.fr
Hors ligne
#20 Le 19/04/2020, à 17:02
- moko138
Re : [Résolu] Récupérer des données d'un disque dur
5 Reallocated_Sector_Ct 0x0033 001 001 050 Pre-fail Always FAILING_NOW 16376![]()
- -
j'ai bien désactivé le montage automatique.
OK ! ![]()
- -
ce qui permet d'avoir les noms /dev/sdcX qu'on ne peut pas éviter d'après mes recherches
Perso, pour obtenir l'équivalence, au même instant,
entre /dev/sdXN et /dev/disk/by-id/bla-bla-partN j'utilise :
sudo lsblk -o name,fstype,size,label,mountpoint | grep -v loop ; echo -e "\n\t\t\t= = =\nDésignations...\n\t...stables\t\t\t ...instables :"; ls -l /dev/disk/by-id | grep -Evi "\-part[3-9]|Reader|\-part[1-9][0-9]" | awk '{print $9,$11}' | sort -k2 | column -s' ' -t .
N.B. : Pour limiter la longueur des retours, j'ai bridé la sortie de /dev/disk/by-id aux partitions 1 et 2 (cas des clefs de démarrage compatibles EFI). Mais si on a une partition sdX32, il suffit de rajouter
-part32derrière un des
/dev/disk/by-id/bla-blacorrespondant à /dev/sdX
Dernière modification par moko138 (Le 19/04/2020, à 17:03)
%NOINDEX%
Un utilitaire précieux : ncdu
Photo, mini-tutoriel : À la découverte de dcraw
Hors ligne
#21 Le 19/04/2020, à 17:21
- Nuliel

Re : [Résolu] Récupérer des données d'un disque dur
Pour ma part je fais un ls -l /dev/disk/by-id afin d'avoir les noms instables et stables.
Je pense que je vais arrêter la copie, et voir exactement où il faut gratter.
testdisk ne donne rien avec list files... J'ai bien l'impression qu'il va falloir que je fasse un script utilisant la MFT
Dernière modification par Nuliel (Le 19/04/2020, à 17:25)
[ poster un retour de commande ] [ poster une photo ]
Thinkpad x220, Dell latitude E7270 (i7 6600U, 16 Go de RAM, ...), Thinkstation E32 modifié: i5-4570, GTX 1060 6 Gb, 16 Gb de RAM, ...
Mon nouveau blog: nuliel.fr
Hors ligne
#22 Le 20/04/2020, à 20:00
- Nuliel

Re : [Résolu] Récupérer des données d'un disque dur
Bon, j'ai beaucoup creusé et je n'ai malheureusement pas trouvé mon bonheur dans tous les outils de forensics
Mon but: utiliser la MFT qui contient les noms des fichiers ainsi que leur emplacement physique sur le disque pour les extraire, en utilisant les logs de ddrescue pour savoir si les fichiers en question sont récupérables.
Je vais coder ça en C++ je pense, si j'y arrive je mettrai ça ici.
Dernière modification par Nuliel (Le 20/04/2020, à 20:01)
[ poster un retour de commande ] [ poster une photo ]
Thinkpad x220, Dell latitude E7270 (i7 6600U, 16 Go de RAM, ...), Thinkstation E32 modifié: i5-4570, GTX 1060 6 Gb, 16 Gb de RAM, ...
Mon nouveau blog: nuliel.fr
Hors ligne
#23 Le 21/04/2020, à 01:11
- moko138
Re : [Résolu] Récupérer des données d'un disque dur
[HS] Salut les gars,
Au cas où vous auriez le temps et l'envie, j'ai un problème d'interprétation concernant un nvme vu par smartctl 6.6. Ça se passe en ./viewtopic.php?pid=22265214#p22265214
Merci à tous !
[/HS]
%NOINDEX%
Un utilitaire précieux : ncdu
Photo, mini-tutoriel : À la découverte de dcraw
Hors ligne