De bad sector para “danified file” - fiz para o Linux / ext3, posso fazê-lo para Windows / NTFS?

17

Quando uma verificação SMART em um disco relata um setor defeituoso, é importante poder identificar o arquivo que tem o setor defeituoso - e restaurá-lo a partir de backups. Abaixo, mostro como fiz isso para o meu servidor Linux / ext3 VMWARE - mas alguém sabe se isso pode ser feito para o Windows / NTFS?

Veja como eu fiz isso para Linux / ext3: primeiro pedi à unidade para fazer uma varredura de superfície de 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

Assim, um setor já estava marcado como ruim, 9 foram marcados para substituir o espaço do setor de "encenação". Mais importante, o primeiro endereço de bloco lógico (LBA) que é ilegível, foi 591363172.

Eu 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 foi ...

vserver:~# bc -l
591363172-32+1
591363141

... em um deslocamento de 591363141 setores desde o começo da partição.

Agora, consegui descobrir qual arquivo era "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, então o setor ruim destruiu este bloco no sistema de arquivos:

vserver:~# bc -l
591363141*512/4096
73920392.62500000000000000000

E o número do bloco (73920392) correspondia neste 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 o Windows / NTFS?

    
por ttsiodras 14.09.2011 / 14:11

1 resposta

7

Eu sei que você tem um NTFS FS e executa janelas nesse FS. Eu não sei se você "pode" inicializar um Linux ao vivo para trabalhar com esse driver ou não.

Se você puder inicializar o Linux a partir de CD ou USB, você pode usar o ntfsprogs. olhe para -

ntfscluster 

ntfsinfo 

Acredito que o ntfscluster informa qual arquivo um determinado cluster armazena. Espero que isso te coloque na direção certa.

    
por 25.09.2011 / 04:25