Sur un PC sous Windows 7x64 Ultimate nouvellement installé en UEFI avec 2 disques dur de 4 To en GPT qui fonctionnaient très bien, j'ai branché un disque externe de 1 To en USB3. J'ai lancé une copie intégrale des fichiers, ce qui représentait un volume de presque 900 Go, le processus devait donc prendre plusieurs heures. Au bout de quelques temps, l'écran s'est éteint automatiquement, je n'avais pas touché aux gestions d'alimentation de Windows. En le rallumant quelques heures plus tard, je m'aperçois que le transfert s'est figé à peu prêt à la moitié. Il n'est pas possible d'annuler, bref aucun moyen de fermer la fenêtre du transfert. Seule possibilité, arrêter l'ordinateur, ...qui évidemment bloque sur "Arrêt de Windows" pendant très longtemps (et j'ai donc supposé, indéfiniment). J'appuie 5 secondes sur le bouton Power pour forcer l'extinction.
En le rallumant, CHKDSK se lance et veut vérifier l'intégrité des fichiers du disque de 4 To cible du transfert, il s'effectue sur la partition qu'il voit et qui s'appelle "Nicosave" en corrigeant quelques erreurs, puis bloque sur le message "CHKDSK is verifying USN Journal", je laisse tourner (peut-être 30 minutes?) jusqu'à ce que j'estime qu'il est à nouveau figé et que j'éteigne l'alimentation. En redémarrant, CHKDSK me re-propose la vérification, je passe et vais voir dans Windows. Là, dans l'explorateur, on peut voir la partition (l'unique) "Nicosave", cependant elle est inaccessible. Redémarrage, on laisse à nouveau CHKDSK faire ce qu'il a à faire, il ne répare plus d'erreurs mais bloque encore sur "CHKDSK is verifying USN Journal".
À ce stade, je me demande encore si ce n'est pas un problème de câble, de contrôleur, ou du disque lui-même, même si je soupçonne fortement une mise en veille intempestive (de l'USB? de(s) disque(s)?) de la part de Windows d'être à l'origine du blocage du transfert et de tout ce qui en a découlé.
Je décide de tester le disque sur une autre machine, également sous Windows 7x64. Bien entendu, CHKDSK se lance au démarrage et je le laisse faire. Ici, il trouve à nouveau des erreurs à réparer, je n'ai pas le nombre en tête mais, alors qu'il y en avait de l'ordre d'une dizaine la première fois, il s'agit maintenant peut-être de la trentaine mais ça reste raisonnable. Cependant, il bloque à nouveau à la fin sur le même message de vérification du journal USN. Puisque le PC n'y change rien, je le remet sur l'ordinateur d'origine, il veut à nouveau vérifier la partition "Nicosave" (qu'il voit), je passe la vérification et cette fois-ci dans l'explorateur Windows, il ne voit plus le nom. il y a bien une partition mais elle s'appelle "Disque Local" et on voit une barre de chargement lente dans la zone "chemin" de l'explorateur. Je décide d'aller voir dans la Gestion des disques de Windows, il ne voit plus qu'une partition de type RAW, pourtant, en relançant, CHKDSK au démarrage voit toujours la partition NTFS "Nicosave".
Sur ce montage, on voit deux onglets des Propriétés du disque à problème, l'un disant que le périphérique fonctionne, l'autre donnant une capacité -à priori- correcte. Je dis à priori car on voit une légère différence avec l'autre disque de 0,01 Go sur l'image (en réalité, il y a 4 Mo d'écart) dont je ne vois pas l'origine, en tout cas, il le
voit bien en tant que disque de 4 To.
En regardant le journal des évenements Système de Windows, on remarque que la vérification du journal s'effectue, c'est après que se produit le blocage, lors de l'écriture sur le deuxième secteur d'amorçage NTFS.
C'est ici qu'on me parle de TestDisk, et que je me documente dessus, en parcourant le wiki et le forum.
En lançant TestDisk, je choisis Create pour le log, puis il me détecte mes deux disques dur. Cependant, celui qui pose problème est détecté comme un 3 To, à la ligne Disk /dev/sdb alors qu'il est identique à l'autre.
En sélectionnant le disque sain, puis Proceed, on a ceci :
en faisant la même chose avec le disque problématique, on obtient :
En lançant Analyse, on s'aperçoit que la partition est toujours là (CHKDSK la voyait bien..)
Ensuite, en lançant Quicksearch, au bout de quelques secondes, il trouve bien la partition également. Cependant, l'opération s'est arrêtée (après quelques heures) à 63%, le curseur clignotait toujours mais le numéro de cylindre analysé restait fixe, Windows n'a pas non plus crashé. J'ai donc fermé Testdisk, rebooté (au cas où), relancé, et cette fois-ci, après avoir lancé QuickSearch, j'ai fais Stop, et lancé DeepSearch, processus qui a prit 3 jours (plus de 50 heures) mais qui est allé à son terme.
Le log fait 402 Ko, bizarrement, au début de la Deepsearch, il avait trouvé Nicosave, à la fin, on ne pouvait plus trouver la ligne dans la fenêtre TestDisk (j'imagine que c'est une question de dépassement de lignes d'affichage). Deepsearch a détecté un nombre incalculable de "petites" ou grosses partitions, y compris Macintosh... sur un disque presque neuf sur lequel je suis le seul à avoir écrit. Il m'a fallu un moment avant de comprendre mais en sélectionnant quelques partitions dans Testdisk et en affichant les fichiers, je me suis aperçu que cela correspondait aux données écrites dessus, en effet, il s'agit d'un disque comportant une foultitude de programmes d'émulation de vieilles machines, et bizarrement TestDisk (je pense) a détecté des partitions qui en réalité, n'existent pas (il m'a suffit de voir le nom de quelques fichiers et les dates farfelues (1987, ..1992, etc..)). Ce qui explique un log de mammouth.
Lien vers le log Deepsearch
Extrait du log :
Code: Select all
Mon Feb 9 22:49:21 2015
Command line: TestDisk
TestDisk 6.14-WIP, Data Recovery Utility, December 2012
Christophe GRENIER <grenier@cgsecurity.org>
http://www.cgsecurity.org
OS: Windows 7 (7601) SP1
Compiler: GCC 4.6, Cygwin 1007.17
Compilation date: 2012-12-23T19:10:17
ext2fs lib: 1.42.2, ntfs lib: 10:0:0, reiserfs lib: 0.3.1-rc8, ewf lib: 20120504
disk_get_size_win32 IOCTL_DISK_GET_LENGTH_INFO(/dev/sda)=4000787030016
disk_get_size_win32 IOCTL_DISK_GET_LENGTH_INFO(/dev/sdb)=3000615492608
disk_get_size_win32 IOCTL_DISK_GET_LENGTH_INFO(\\.\PhysicalDrive0)=4000787030016
disk_get_size_win32 IOCTL_DISK_GET_LENGTH_INFO(\\.\PhysicalDrive1)=3000615492608
disk_get_size_win32 IOCTL_DISK_GET_LENGTH_INFO(\\.\C:)=1106847465472
disk_get_size_win32 IOCTL_DISK_GET_LENGTH_INFO(\\.\D:)=2893697515520
disk_get_size_win32 IOCTL_DISK_GET_LENGTH_INFO(\\.\I:)=4000647741440
Hard disk list
Disk /dev/sda - 4000 GB / 3726 GiB - CHS 486401 255 63, sector size=512 - WDC WD40EZRX-00SPEB0, S/N:2020202057202d44435734433045313535313031, FW:80.00A80
Disk /dev/sdb - 3000 GB / 2794 GiB - CHS 364804 255 63, sector size=512 - WDC WD40EZRX-00SPEB0, S/N:2020202057202d44435734433045373239323938, FW:80.00A80
Partition table type (auto): EFI GPT
Disk /dev/sdb - 3000 GB / 2794 GiB - WDC WD40EZRX-00SPEB0
Partition table type: EFI GPT
Analyse Disk /dev/sdb - 3000 GB / 2794 GiB - CHS 364804 255 63
hdr_size=92
hdr_lba_self=1
hdr_lba_alt=5860577133 (expected 5860577133)
hdr_lba_start=34
hdr_lba_end=5860577100
hdr_lba_table=2
hdr_entries=128
hdr_entsz=128
check_part_gpt failed for partition
1 P MS Reserved 34 262177 262144 [Microsoft reserved partition]
Current partition structure:
No FAT, NTFS, ext2, JFS, Reiser, cramfs or XFS marker
1 P MS Reserved 34 262177 262144 [Microsoft reserved partition]
1 P MS Reserved 34 262177 262144 [Microsoft reserved partition]
2 P MS Data 264192 7814029311 7813765120 [Basic data partition] [NicoSave]
search_part()
Disk /dev/sdb - 3000 GB / 2794 GiB - CHS 364804 255 63
Search for partition aborted
Results
interface_write()
No partition found or selected for recovery
search_part()
Disk /dev/sdb - 3000 GB / 2794 GiB - CHS 364804 255 63
NTFS at 16/113/34
filesystem size 7813765120
sectors_per_cluster 8
mft_lcn 786432
mftmirr_lcn 2
clusters_per_mft_record -10
clusters_per_index_record 1
NTFS part_offset=135266304, part_size=4000647741440, sector_size=512
NTFS partition cannot be added (part_offset<part_size).
NTFS at 16/113/34
filesystem size 7813765120
sectors_per_cluster 8
mft_lcn 786432
mftmirr_lcn 2
clusters_per_mft_record -10
clusters_per_index_record 1
MS Data 264192 7814029311 7813765120 [NicoSave]
NTFS, blocksize=4096, 4000 GB / 3725 GiB
This partition ends after the disk limits. (start=264192, size=3518797824, end=3519062015, disk end=1565609838)
file_pread(5,16,buffer,15833058(985/143/25)) ReadFile Impossible de satisfaire à la demande en raison d’une erreur de périphérique d’E/S.
HFS magic value at 1082/176/33
part_size 2484261712
Mac HFS 17393450 2501655161 2484261712 [Øi]
HFS blocksize=35695616, 1271 GB / 1184 GiB
HFS magic value at 1082/176/35
FAT32 at 1348/144/54
Bad root_cluster
check_FAT: Unusual media descriptor (0xf0!=0xf8)
FAT12 at 1348/144/55
FAT1 : 1-9
FAT2 : 10-18
start_rootdir : 19
Data : 33-2879
sectors : 2880
cluster_size : 1
no_of_cluster : 2847 (2 - 2848)
fat_length 9 calculated 9
FAT differs, FAT sectors=0-9/9
heads/cylinder 2 (FAT) != 255 (HD)
sect/track 18 (FAT) != 63 (HD)
FAT12 at 1348/144/55
MS Data 21664746 21667625 2880 [NO NAME]
FAT12, blocksize=512, 1474 KB / 1440 KiB
FAT32 at 1349/29/11
Bad root_cluster
check_FAT: Unusual media descriptor (0xf0!=0xf8)
FAT12 at 1349/29/12
FAT1 : 1-9
FAT2 : 10-18
start_rootdir : 19
Data : 33-2879
sectors : 2880
cluster_size : 1
no_of_cluster : 2847 (2 - 2848)
fat_length 9 calculated 9
FAT differs, FAT sectors=0-9/9
heads/cylinder 2 (FAT) != 255 (HD)
sect/track 18 (FAT) != 63 (HD)
FAT12 at 1349/29/12
MS Data 21673523 21676402 2880 [NO NAME]
FAT12, blocksize=512, 1474 KB / 1440 KiB
FAT32 at 1349/34/8
Bad root_cluster
check_FAT: Unusual media descriptor (0xf0!=0xf8)
FAT12 at 1349/34/9
FAT1 : 1-9
FAT2 : 10-18
start_rootdir : 19
Data : 33-2879
sectors : 2880
cluster_size : 1
no_of_cluster : 2847 (2 - 2848)
fat_length 9 calculated 9
FAT differs, FAT sectors=0-9/9
heads/cylinder 2 (FAT) != 255 (HD)
sect/track 18 (FAT) != 63 (HD)
................
................ /// ici il y a des milliers de lignes avec des partitions farfelues comme les quelques-unes
................ /// que j'ai laissé au-dessus
interface_write()
No partition found or selected for recovery
simulate write!
New options :
Dump : No
Align partition: Yes
Expert mode : No
TestDisk exited normally.
En résumé, mes conclusions :
- la partition n'est pas "perdue", puisque CHKDSK et TestDisk la voient dans la table. (donc à priori les Search étaient inutiles ?)
- pour une raison x ou y, le nombre de cylindres, etc.. ne sont plus les bons, il faut donc probablement utiliser Geometry de TestDisk
- le secteur de boot NTFS est corrompu, il faut donc restorer le Backup, cependant le message de CHKDSK dans l'observateur d'évènements indiquant qu'il n'arrive pas à écrire sur le "deuxième" secteur d'amorçage NTFS m'incite a pensé qu'il est endommagé, est-il alors intelligent de restaurer ça ? Que faire ?
Je n'ai toujours pas modifié la Geometry, ni fait Write à un quelconque moment, pour l'instant je me suis contenté d'analyser la situation et j'aimerai lire des avis de personnes plus éclairées que moi sur le sujet.
Merci d'avance !