Quando uma verificação SMART em um disco relata um setor defeituoso, é importante poder identificar o arquivo que possui o setor defeituoso - e restaurá-lo a partir de backups. Abaixo, mostro como fiz isso no meu servidor Linux / ext3 VMWARE - mas alguém sabe se isso pode ser feito no Windows / NTFS?
Aqui está como eu fiz isso no Linux / ext3: primeiro solicitei à unidade que fizesse uma verificação da superfície do hardware (abaixo do nível do SO, com os circuitos SMART na unidade):
vserver:~# smartctl -t long /dev/sdc
Eu olhei para os resultados:
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
Portanto, um setor já foi marcado como ruim, 9 foram marcados para substituição do espaço do setor "intermediário". Mais importante, o primeiro endereço de bloco lógico (LBA) ilegível foi 591363172.
Encontrei a partição (e o deslocamento dentro dela) que esse número "traduziu" para:
vserver:~# fdisk -lu /dev/sdc
Device Boot Start End Blocks Id System
/dev/sdc1 32 976773119 488386544 83 Linux
A partição começou no setor 32. Então, o setor ruim era ...
vserver:~# bc -l
591363172-32+1
591363141
... em um deslocamento de 591363141 setores desde o início da partição.
Agora eu pude encontrar qual arquivo foi "hosed":
vserver:~# tune2fs -l /dev/sdc1 | grep Block\ size
Block size: 4096
O tamanho do bloco deste sistema de arquivos EXT3 era de 4096 bytes; portanto, o setor defeituoso destruiu esse bloco no sistema de arquivos:
vserver:~# bc -l
591363141*512/4096
73920392.62500000000000000000
E o número do bloco (73920392) correspondeu a este arquivo:
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
E eu restaurei esse arquivo dos meus backups.
Existe um procedimento equivalente que eu possa seguir para Windows / NTFS?
dd
. Isso forçará a unidade a repará-la ou realocá-la.