Lorsqu'un contrôle SMART sur un disque signale un mauvais secteur, il est important de pouvoir identifier le fichier qui a le mauvais secteur - et le restaurer à partir de sauvegardes. Ci-dessous, je montre comment j'ai fait cela pour mon serveur VMWARE Linux / ext3 - mais quelqu'un sait-il si cela peut être fait pour Windows / NTFS?
Voici comment je l'ai fait pour Linux / ext3: j'ai d'abord demandé au lecteur de faire une analyse de la surface matérielle (en dessous du niveau du système d'exploitation, avec les circuits SMART sur le lecteur):
vserver:~# smartctl -t long /dev/sdc
J'ai regardé les résultats:
vserver:~# smartctl -a /dev/sdc
...
196 Reallocated_Event_Count 0x0032 100 100 000 Old_age Always - 1
197 Current_Pending_Sector 0x0012 100 100 000 Old_age Always - 9
...
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Extended offline Completed: read failure 90% 27679 591363172
Ainsi, un secteur était déjà marqué comme mauvais, 9 ont été marqués pour être remplacés à partir de l'espace du secteur "intermédiaire". Plus important encore, la première adresse de bloc logique (LBA) qui est illisible, était 591363172.
J'ai trouvé la partition (et l'offset à l'intérieur) que ce nombre a "traduit" en:
vserver:~# fdisk -lu /dev/sdc
Device Boot Start End Blocks Id System
/dev/sdc1 32 976773119 488386544 83 Linux
La partition a commencé au secteur 32. Donc, le mauvais secteur était ...
vserver:~# bc -l
591363172-32+1
591363141
... à un décalage de 591363141 secteurs depuis le début de la partition.
Maintenant, je pouvais trouver quel fichier était "arrosé":
vserver:~# tune2fs -l /dev/sdc1 | grep Block\ size
Block size: 4096
La taille de bloc de ce système de fichiers EXT3 était de 4096 octets, donc le secteur défectueux a détruit ce bloc dans le système de fichiers:
vserver:~# bc -l
591363141*512/4096
73920392.62500000000000000000
Et le numéro de bloc (73920392) correspondait à ce fichier:
vserver:~# debugfs
debugfs 1.41.3 (12-Oct-2008)
debugfs: open /dev/sdc1
testb 73920392
debugfs: testb 73920392
Block 73920392 marked in use
debugfs: icheck 73920392
Block Inode number
73920392 18472967
debugfs: ncheck 18472967
Inode Pathname
18472967 /path/to/filewithbadsector
Et j'ai restauré ce fichier à partir de mes sauvegardes.
Existe-t-il une procédure équivalente que je peux suivre pour Windows / NTFS?
la source
dd
. Cela forcera le disque à le réparer ou à le réallouer.Réponses:
Je sais que vous avez un FS NTFS et exécutez des fenêtres sur ce FS. Je ne sais pas si vous "pourriez" démarrer un Linux en direct pour travailler sur ce pilote ou non.
Si vous pouvez démarrer Linux à partir d'un CD ou d'un périphérique USB, vous pouvez utiliser ntfsprogs. Regarder -
Je crois que ntfscluster vous dit quel fichier stocke un cluster particulier. J'espère que cela vous met dans la bonne direction.
la source