A agonia ou a longa história de uma tentativa de recuperação de dados

No quintal foi o ano de 2019. O inversor QUANTUM FIREBALL Plus KA com capacidade de 9,1 GB chegou ao nosso laboratório, o que não é muito usual para o nosso tempo. De acordo com o proprietário da unidade, a falha ocorreu em 2004 devido à falha de uma fonte de alimentação com falha, que pegou um disco rígido e outros componentes do PC. Depois, houve vários serviços com tentativas de reparar a unidade e restaurar dados que não tiveram êxito. Em algum lugar eles prometeram que era barato, mas ainda não resolveram o problema, em algum lugar era muito caro e o cliente não queria restaurar os dados, mas no final o disco passou por muitos centros de serviço. Ele se perdeu várias vezes, mas, devido ao fato de o proprietário ter tomado o cuidado de registrar informações de vários adesivos na unidade, ele conseguiu garantir que seu disco rígido fosse devolvido de alguns centros de serviço. Os circuitos não passaram despercebidos, na placa controladora original havia vários traços de solda, e a falta de elementos SMD também foi sentida visualmente (olhando para a frente, direi que esse é o menor dos problemas dessa unidade).


Fig. 1 HDD Quantum Fireball Plus KA 9.1GB

A primeira coisa que precisei fazer foi pesquisar no arquivo de doadores de um irmão gêmeo tão antigo dessa unidade com uma placa controladora em funcionamento. Quando essa missão foi concluída, tornou-se possível realizar medidas de diagnóstico detalhadas. Após verificar se há um curto-circuito nos enrolamentos do motor e garantir sua ausência, instalamos a placa do inversor - o doador para o inversor - do paciente. Nós energizamos e ouvimos o som normal do eixo girando, passando no teste de calibração com o carregamento do firmware e, após alguns segundos, o inversor registra sua prontidão para responder aos comandos da interface.


Fig. 2 indicadores DRD DSC indicam prontidão para aceitar comandos.

Reservamos todas as cópias dos módulos de firmware. Verificamos a integridade dos módulos de firmware. Não há problemas com a leitura dos módulos, mas a análise dos relatórios mostra que existem algumas esquisitices.


Fig. 3. tabela de zona.

Prestamos atenção à tabela de distribuição de zonas, observamos que o número de cilindros é 13845.


Fig. 4 Lista P (lista primária - uma lista de defeitos introduzidos durante o ciclo de produção).

Prestamos atenção a poucos defeitos e sua localização. Observamos o módulo para ocultar defeitos de fábrica (60h) e descobrimos que ele está vazio e não contém nenhuma entrada. Com base nisso, podemos assumir que em alguns dos centros de serviço anteriores, algumas manipulações com a área de serviço do inversor podem ter sido feitas e um módulo alienígena foi gravado acidental ou intencionalmente ou a lista de defeitos no original foi apagada. Para verificar essa suposição, criamos uma tarefa no Data Extractor com as opções "criar uma cópia setor por setor" e "criar um tradutor virtual" ativadas.


Fig. 5 Parâmetros da tarefa.

Após criar a tarefa, examinamos as entradas na tabela de partições no setor zero (LBA 0)


Fig. 6 Registro mestre de inicialização e tabela de partição.

No deslocamento 0x1BE, há um único registro (16 bytes). O tipo de sistema de arquivos na partição é NTFS, o deslocamento para o início do setor 0x3F (63), o tamanho da partição é 0x011309A3 (18.024.867) setores.
No editor de setor, abra o LBA 63.


Fig. 7 setor de inicialização NTFS

De acordo com as informações do setor de inicialização NTFS, pode-se dizer o seguinte: o tamanho do setor adotado no volume é de 512 bytes (a palavra 0x0200 (512) é escrita no deslocamento 0x0B), o número de setores no cluster é 8 (o byte 0x08 é no deslocamento 0x0D), o tamanho do cluster é 512x8 = 4096 bytes, o primeiro registro MFT está localizado em um deslocamento de 6.291.519 setores desde o início do disco (no deslocamento 0x30, a palavra quádrupla 0x00 00 00 00 00 00C 00 00 (786 432) é o número do primeiro cluster MFT. O número do setor é calculado pela fórmula: Número do cluster * o número de setores no cluster + turno antes do início da partição 786 432 * 8 + 63 = 6.291.519).
Passamos para o setor 6 291 519.


Fig. 8

Mas os dados contidos nesse setor são completamente diferentes do registro da MFT. Embora isso indique uma possível transmissão incorreta devido a uma lista de defeitos incorreta, isso não prova esse fato. Para uma verificação mais aprofundada, leremos o disco em 10.000 setores em ambas as direções em relação a 6.291.519 setores. E então procuraremos expressões regulares na leitura.


Fig. 9 Primeiro registro MFT

No setor 6.291.551, encontramos o primeiro registro da MFT. Sua posição difere da calculada em 32 setores e, em seguida, um grupo de 16 registros (de 0 a 15) segue continuamente. Vamos inserir a posição do setor 6 291 519 na tabela de turnos para avançar 32 setores.


Fig. 10

A posição do registro n ° 16 deve estar em um deslocamento de 12 551 431, mas lá encontramos zeros, em vez de registrar a MFT. Faremos uma pesquisa semelhante nas proximidades.


Fig. 11 Registro MFT 0x00000011 (17)

Um grande fragmento de MFT é detectado, começando com o número de registro 17, com um comprimento de 53.646 registros), com um deslocamento de 17 setores. Para a posição 12 155 431, colocaremos um turno de +17 setores na tabela de turnos.
Tendo determinado a posição dos fragmentos de MFT no espaço, podemos concluir que isso não parece uma falha aleatória e o registro de fragmentos de MFT por compensações incorretas. Uma versão com um tradutor incorreto pode ser considerada confirmada.
Para maior localização dos pontos de cisalhamento, definimos o deslocamento máximo possível. Para isso, determinamos quanto o marcador da partição NTFS final é deslocado (cópia do setor de inicialização). Na Figura 7, no deslocamento 0x28, a quarta palavra é o valor dos setores de tamanho de partição 0x00 00 00 00 00 01 13 09 A2 (18.024.866). Vamos adicionar o deslocamento da própria partição desde o início do disco ao seu comprimento; obteremos o deslocamento do marcador NTFS final 18,024,866 + 63 = 18,024,929. Como esperado, não havia cópia necessária do setor de inicialização. Ao pesquisar nas proximidades, foi detectado com uma mudança crescente de +12 setores em relação ao último fragmento da MFT.


Fig. 12 Setor de inicialização de cópia de NTFS

Ignoramos outra cópia do setor de inicialização no deslocamento 18 041 006, pois não está relacionado à nossa seção. Com base em eventos anteriores, constatou-se que na seção existem 61 setores que “apareceram” na transmissão, que dividiram os dados.
Realizamos uma leitura completa da unidade, o que resulta em 34 setores não lidos. Infelizmente, é impossível garantir com segurança que todos eles sejam removidos da lista P, mas é aconselhável levar em consideração sua posição durante análises adicionais, pois em alguns casos será possível determinar com segurança os pontos de mudança precisos para o setor e não para o arquivo.


Fig. 13 Estatísticas de Leitura de Disco.

Nossa próxima tarefa será estabelecer os locais aproximados dos turnos (precisos no arquivo em que eles surgiram). Para fazer isso, verificaremos todos os registros da MFT e criaremos as cadeias de localização de arquivos (fragmentos de arquivo).


Fig. 14 As cadeias da localização dos arquivos ou seus fragmentos.

Além disso, passando de arquivo para arquivo, estamos procurando em que ponto, em vez do cabeçalho de arquivo esperado, haverá outros dados, e o cabeçalho desejado será detectado com uma certa mudança positiva. E, à medida que os pontos de mudança são refinados, preenchemos a tabela. O resultado do preenchimento será superior a 99% dos arquivos, sem danos.


Fig. 15 Lista de arquivos do usuário (consentimento recebido do cliente para publicar esta captura de tela)

Para estabelecer trocas de pontos em arquivos individuais, você pode executar trabalhos adicionais e, se conhecer a estrutura do arquivo, encontrar intercalações de dados que não estão relacionados a ela. Mas nessa tarefa não era economicamente viável.

PS: Eu também gostaria de apelar aos colegas em cujas mãos este disco esteve antes. Tenha cuidado ao trabalhar com o firmware do dispositivo e reserve os dados do serviço antes de alterar qualquer coisa e também não permita que o problema seja deliberadamente agravado se você não conseguir concordar com o cliente na execução do trabalho.

Próximo post: Auto-diagnóstico de discos rígidos e recuperação de dados
Post anterior: Salvando em correspondências ou recuperando dados do HDD da Seagate ST3000NC002-1DY166

Source: https://habr.com/ru/post/pt475146/


All Articles