
Antes de iniciar o diagnóstico, a primeira etapa é avaliar o estado do inversor. Como este é o Seagate, precisamos ver o log do terminal a partir do momento da fonte de alimentação, SMART, e avaliar a capacidade de ler cabeçotes em zonas de densidades diferentes. Como regra, um teste tão curto revelará muitas falhas.
Nós conectamos, fornecemos energia. No terminal, o inversor relata brevemente que o procedimento de inicialização foi bem-sucedido e, pelos registros DRD e DSC , demonstra sua prontidão para aceitar comandos.

Figura: 2 Log de inicialização do terminal do Seagate ST4000DM000 HDD
Em seguida, você precisa verificar as leituras SMART (o que é SMART e o que procurar nele já descrevi em minha nota).

Figura: 3 Leituras SMART
A primeira coisa que olhamos é o tempo de operação (atributo 0x09), pois se for próximo de zero, então não faz sentido prestar atenção nas leituras SMART , pois haverá uma grande probabilidade de que as estatísticas sejam de alguém reset por comandos tecnológicos, e as leituras atuais não mostram todos os eventos registrados durante a operação do inversor. Em nosso caso, o tempo de operação é de 3 696 horas, o que indica que provavelmente não houve interferência nas leituras SMART .
Em seguida, preste atenção às leituras dos atributos 0x05, 0xC5 (197), 0xC6 (196) na coluna RAW. Os valores zero indicam que, durante a operação do inversor, nenhum problema sério de leitura da superfície foi registrado e nenhum remapeamento foi executado.
A leitura do atributo 0xC7 (199) sugere possíveis problemas com a transferência de dados em modos de alta velocidade. Levando em consideração o fato de que o número de erros é pequeno, por enquanto não faremos conclusões prematuras.
Como este não é um gravador de blocos (SMR), então a capacidade de ler todas as cabeças em zonas de densidade diferente é fácil de avaliar. Para isso, basta saber o número de cabeças, o tamanho aproximado das minibandas e sua ordem de alternância na construção do espaço lógico do drive. Usaremos Data Extractor para demonstração. Vamos construir um mapa dos miniespaços.

Figura: 4 Mapa de miniespaços no espaço lógico Seagate ST4000DM000
A lista mostra a ordem de uso de miniespaços para construir um espaço lógico:
0, 1, 2, 3, 4, 5, 6, 7, 7, 6, 5, 4, 3, 2, 1, 0 e então a repetição cíclica. Com base no tamanho de uma mini-zona para uma determinada unidade, é óbvio que é suficiente ler várias seções do espaço lógico (geralmente o início, meio e fim do intervalo lógico) com cerca de 500.000 setores de comprimento para garantir que a unidade não congele e a velocidade de varredura não caia acentuadamente. uma das superfícies.
Foi uma leitura da superfície que foi utilizada, e não uma verificação, para verificar ao mesmo tempo se ocorreriam erros durante a transferência de dados. Neste caso, nenhum erro de leitura foi encontrado. Este conjunto de ações permite que você considere a unidade como condicionalmente íntegra e comece a analisar as estruturas dos sistemas de arquivos.
Inicialmente, avaliaremos se existem partições atualmente no disco e quais sistemas de arquivos são usados lá.
Gostaria de chamar sua atenção para o fato de que em discos onde o número de setores é superior a 4.294.967.296 setores, você deve usar GPTpara usar a capacidade total, uma vez que a tabela de partição clássica usa valores de 32 bits que não são largos o suficiente. Em nosso caso, ST4000DM000 é uma unidade de 4 TB, em que o intervalo lógico consiste em 7.814.037.168 setores de 512 bytes.
Vamos começar examinando o conteúdo do LBA 0.

Figura: 5 Tabela de partição que descreve a presença de GPT .
Aqui encontramos uma tabela de partição clássica, com a descrição de um volume. No deslocamento 0x1C2, o tipo de partição 0xEE é indicado com um deslocamento do setor 0x00000001 do início do disco e um tamanho de 0x3A3817D5.
O objetivo desta entrada é indicar que todo o conteúdo do disco disponível para a tabela de partição clássica está ocupado, de forma que vários utilitários de disco antigos que não têm nenhuma idéia sobre GPT não possam criar a partição. Porém, no caso de discos em que o número de setores é maior que 4.294.967.296, a área protegida deve ser 0xFFFFFFF, não 0x3A3817D5.
Observe que o valor 0x3A3817D5 (976 754 645) é aproximadamente 8 vezes menor que 7 814 037 168 - o número total de setores no disco. Isso nos permite supor que o disco provavelmente foi usado como um dispositivo com um tamanho de setor de 4096 bytes, e não 512 bytes. Vamos verificar a suposição e tentar procurar a expressão regular 0x45 0x46 0x49 0x20 0x50 0x41 0x52 0x54 (EFI PART). Se estiver no setor 1, a suposição está incorreta, se estiver no setor 8, a suposição será confirmada.

Figura: 6 Cabeçalho GPT Vamos
também verificar se algum volume está descrito neste GPT , para o qual vamos para o setor 16

Figura: 7 Seções descritas no GPT
Duas entradas são encontradas aqui.
O primeiro registro é um volume de setor de 76.800 (614.400) usando o sistema de arquivos FAT32. Este volume é reservado para as necessidades da EFI.
O segundo registro é um volume de 976 644 858 (7 813 158 864) setores usando o sistema de arquivos HFS +.
Uma vez que está confirmada a versão com o fato de que o disco foi utilizado como um dispositivo com um tamanho de setor de 4096 bytes, o próximo passo será continuar a análise usando Extrator de Dados.
Depois de criar a tarefa, altere o parâmetro de tamanho do setor de 512 para 4096 e obtenha a seguinte imagem.

Figura: 8 Parâmetros HFS +
Vemos dois volumes no disco com sistemas de arquivos corretos. O primeiro volume, por função e tamanho, não nos interessa. Mas o segundo volume já é interessante.
A partir dos carimbos de data / hora, podemos concluir que este volume foi criado em 19 de outubro de 2020, que é uma data relativamente próxima à época em que o disco chegou até nós.
A varredura do CatalogFile + Journal (estruturas HFS +) mostra que o disco está 99,9% vazio e não há sinais de dados do usuário descritos por este sistema de arquivos.
Agora é necessário verificar a suposição de que, talvez, neste disco existam outros volumes e sistemas de arquivos, e não apenas os que são apresentados agora. Para fazer isso, usaremos a ferramenta de pesquisa para várias expressões regulares que são específicas para várias estruturas de sistemas de arquivos e arquivos.

Figura: 9 Resultado da pesquisa de expressão regular.
A análise de uma área de cerca de 2 GB, que dura menos de 2 minutos, mostra-nos que além dos existentes FAT32 e HFS +, existem indícios da existência de um volume com o sistema de arquivos ExFAT. A primeira coisa que nos interessa é visualizar o diretório raiz ExFAT do volume.

Figura: 10 Diretório raiz ExFAT O
rótulo de volume "Transcend" é impressionante. O estranho é que as unidades externas deste fabricante são comuns no formato de 2,5 polegadas, não 3,5. E é bastante improvável que o próprio usuário tenha decidido colocar um rótulo de volume semelhante.
Vamos anotar os nomes dos diretórios descritos no diretório raiz e fazer perguntas ao cliente sobre se são as informações necessárias.
Assim, passados pouco mais de 10 minutos, continuamos a conversa com o cliente, durante a qual se verifica que ele não é o dono das informações e não consegue esclarecer quais os dados que estavam contidos no disco, e que necessita de ligar ao gestor para esclarecer a tarefa ...
No decorrer do diálogo, pode-se presumir que o cliente é o mensageiro de uma organização intermediária no mercado de serviços de recuperação de dados. Novas negociações confirmam esta versão, já que após o cliente anunciar a informação, uma pausa segue para seu gerente. Aparentemente, o gerente também não sabe o que exatamente deve estar no disco. Porém, após cerca de 15 minutos, o cliente recebe uma ligação informando que esses são exatamente os dados que precisam ser extraídos, e que seu volume deve ser de cerca de 2 TB. Também somos informados de que nos foi fornecida para análise uma cópia setor a setor da mídia original feita com WinHex.
Finalmente, a tarefa fica clara e que estamos no caminho certo. Você pode pegar a unidade novamente do cliente e prosseguir para continuar as atividades de diagnóstico. É claro que, se tivéssemos todas essas informações desde o início, o procedimento de diagnóstico expresso seria muito mais curto.
Para reconstruir o ExFAT, precisamos saber qual era o tamanho do cluster para este sistema de arquivos e determinar a posição do cluster zero (ponto de referência). Em seguida, procure os restos da tabela de alocação de arquivos e o bitmap do espaço ocupado (Bitmap).
Uma palavra diferente e pouco lisonjeira precisa ser dita sobre os desenvolvedores do ExFAT. Para o bem do desempenho do sistema de arquivos, foi decidido que a tabela contém apenas informações sobre cadeias fragmentadas. Os dados embutidos não aparecem na tabela de forma alguma. A criação deste sistema de arquivos em um disco não vazio não limpa a tabela de localização do arquivo e pode conter dados inúteis. Infelizmente, essa ideologia não afeta da melhor maneira a complexidade da recuperação de dados.
Ao analisar os primeiros 2 GB, partes dos diretórios ExFAT foram encontradas. Tendo estimado o tamanho dessas estruturas e preenchido com zeros antes do início de outros dados, é fácil estabelecer o tamanho do cluster. Depois de navegar em vários diretórios, vemos intervalos pronunciados de 256 (2048) setores. Isso nos permite supor que o tamanho do cluster era 1.048.576 (0x100000) bytes ou 1 MB.
Para determinar o ponto de partida, vamos examinar as posições dos diretórios próximos. Voltando à Figura 10. Em particular, estamos interessados no diretório $ RECYCLE.BIN, pois ele está localizado quase no início. Seu número de cluster está indicado no deslocamento 0x94 e é uma palavra dupla (DW), na qual está escrito o valor 0x00000005, ou seja, o diretório está localizado no cluster 5. Além disso, preste atenção ao diretório "Xxxxxxxxxx Xxxx.photoslibrary", que, de acordo com o valor indicado no deslocamento 0xF4 , localizado no cluster 7. Esses diretórios são bons porque há uma alta probabilidade de que um conjunto previsível de diretórios ou arquivos seja esperado lá.
Mais além do diretório raiz com uma etapa de 0x100000 bytes ou 256 (2048) setores, role para frente no espaço de endereço.

Figura: 11 Diretório ExFAT, possivelmente $ RECYCLE.BIN O
conteúdo é semelhante a uma pasta de lixo vazia, onde nada é descrito, exceto o arquivo "desktop.ini". A localização do arquivo no deslocamento 0x34 indica o cluster 6 e o tamanho 0x81 (129) bytes. Vamos avançar mais 1 cluster

Figura: 12 Conteúdo do arquivo desktop.ini O
conteúdo é muito semelhante ao que normalmente é visto nos arquivos "desktop.ini" e tem um tamanho de 0x81 (129) bytes. Há motivos para acreditar que na Figura 11, a pasta $ RECYCLE.BIN e na Figura 11. 12 arquivo descrito nele. Se a suposição estiver correta, no próximo cluster devemos ver um diretório, e seu conteúdo provavelmente deve ser semelhante a uma pasta de biblioteca de fotos típica para MacOS no Apple Macintosh.

Figura: 13 Diretório ExFAT, possivelmente Xxxxxxxxxxxxxxx.photoslibrary
Como você pode ver, a suposição acabou estando correta e vimos os nomes dos diretórios esperados. O número de correspondências nesta área pode ser considerado suficiente e calcular o ponto zero e a posição do diretório raiz do volume existente.
O diretório raiz está no cluster 4. Visto que ele precede o diretório $ RECYCLE.BIN, cujo número do cluster é 5.
O ponto zero relativo a $ RECYCLE.BIN deve estar a uma distância de menos 5 clusters. Posição $ RECYCLE.BIN 37 888 (303 104) setor. 5 clusters são 1280 (10 240) setores. Ao realizar uma subtração simples, obtemos a posição desejada: 37.888 (303104) - 1.280 (10240) = 36.608 (292864) ou o deslocamento do início do espaço lógico em bytes é 292.864 * 512 = 149.946.368 (0x8F00000).
Além disso, tendo o ponto de referência inicial, o tamanho do cluster e a posição do diretório raiz, tentaremos confirmar a exatidão de nossa suposição com um número significativamente maior de verificações.
Usando ferramentas Data Extractor não é tão rápido fazer isso para a partição ExFAT, então montamos o disco no sistema operacional (com gravação desabilitada).

Figura: 14 Menu de montagem de discos no SO no utilitário PC3000 Win 7 Disk Utilizamos
o Image Explorer gratuito da central de software, onde, ao abrir o disco, podemos escrever rapidamente os parâmetros do sistema de arquivos virtual e avaliar a exatidão dos pressupostos.

FIG. 15 Árvore de diretórios ExFAT expandida
Como você pode ver na imagem, os diretórios e arquivos estão em seus lugares, o que nos permite concluir que os parâmetros do sistema de arquivos estão definidos corretamente.
Neste ponto, as atividades de diagnóstico podem ser interrompidas e, em seguida, a seguinte lista de trabalhos pode ser acordada com o cliente:
1. Pesquisa de expressões regulares em todo o espaço lógico para estabelecer a localização possível de vários tipos de dados.
2. Pelo menos reconstrução de uma seção ExFAT.
3. Análise de interseções com novos dados substituídos.
4Construir um mapa invertido em relação aos dados existentes no sistema de arquivos reconstruído dentro da interseção com o Bitmap e pesquisar dados do usuário nessas áreas, seguido pela classificação dos encontrados.
No caso de empresas intermediárias, como de costume, a chamada começa, e somente após o consentimento do proprietário final (que dificilmente suspeita que seus dados serão restaurados em nosso laboratório) é o consentimento dado para a realização dos trabalhos.
Qualquer trabalho, mesmo com discos utilizáveis, ainda começa com a criação de uma cópia de setor por setor para outra unidade. Essa medida é necessária para que a unidade do cliente permaneça inalterada e nenhuma iniciativa do sistema operacional leve à corrupção de dados irrevogável. Para um disco de 4 TB, a cópia pelas portas PC3000Express levará cerca de 10 a 12 horas.
Depois de criar uma cópia, começamos a pesquisar várias expressões regulares para ter uma ideia da distribuição dos dados em um espaço lógico, e também para ver se há sinais de outras partições e sistemas de arquivos neste disco.

Figura: 16 Resultados da pesquisa de expressão regular em toda a unidade
Os resultados da verificação mostram que os dados do usuário no disco são definitivamente muito menores do que os 2 TB declarados pelo cliente. A última regex está localizada no setor 539 877 376 e até o final do disco nada mais parecido com os dados do usuário é encontrado, exceto para o marcador de finalização do HFS + recém-criado, embora o disco não seja todo zeros até o final. É provável que a unidade contivesse um volume criptografado antes da partição ExFAT ser criada no disco. Nada mais explica a presença apenas de dados “ruidosos”.
Nesse caso, é importante corresponder o resultado da pesquisa regex a um bitmap.

Figura: 17 Fragmento do setor do diretório raiz ExFAT
No deslocamento 0x34, o número do cluster é indicado 2 - esta é a posição do bitmap na seção ExFAT. O deslocamento 0x38 indica o tamanho da estrutura 0x0746F1 (476.913 bytes ou 3.815.304 bits). Ao analisar essa estrutura, constatou-se que os bits em relevo no cartão são apenas para os primeiros 270GB, e então, de acordo com o cartão, a seção está vazia. Ou seja, o bitmap corresponde aos resultados da pesquisa de expressão regular, mas ambos estão em desacordo com as palavras do cliente.
Claro, se tal inconsistência grave for encontrada, o trabalho é suspenso e você tem que entrar em contato com o cliente intermediário novamente e tentar obter as respostas para as perguntas:
1. Eles realmente criaram uma cópia completa de setor por setor que nos deram para análise?
2O proprietário tem certeza de que este disco continha 2 TB de dados?
3. E se você tiver certeza, concorda em continuar o trabalho de recuperação de dados sabendo que dados acima de 270 GB não podem ser recebidos neste disco?
Obtivemos a resposta à primeira pergunta por meio do acesso remoto ao disco original. E no editor de disco, depois de percorrê-lo com um grande passo, eles o compararam com a cópia que temos. Descobriu-se que a cópia estava completa.
A resposta à segunda pergunta foi que o dono das informações acreditava ter visto com certeza que o disco estava cheio de 2 TB, mas não tinha mais certeza disso.
Mas com toda a confiança do cliente de que havia mais dados, ainda assim é dado consentimento para continuar o trabalho.
Antes de reconstruir o sistema de arquivos, é aconselhável ter uma ideia de quantos diretórios fragmentados existem. Para fazer isso, pegue os resultados de uma análise aproximada e veja o tamanho dos diretórios encontrados. Se houver diretórios com o tamanho dos registros igual ao tamanho do cluster, é mais provável que ocorra fragmentação. Se o tamanho dos registros for menor que o tamanho do cluster, podemos supor que a tarefa é visivelmente simplificada e não é necessária nenhuma emenda manual de fragmentos de diretório.

Figura: 18 Lista de diretórios ExFAT encontrados
Neste caso, nenhuma complicação adicional foi encontrada, o tamanho máximo das entradas no diretório era de 629.984 bytes, que é visivelmente menor que o tamanho do cluster.
Também é necessário marcar todas as áreas ocupadas pelas novas estruturas de arquivos criadas. Para fazer isso, construiremos mapas da localização de todas as estruturas e arquivos nas partições FAT32 e HFS +.

Figura: 19 Mapa de estruturas e dados no volume HFS +
Vamos preencher esses lugares na cópia com um padrão que seja fácil de distinguir de quaisquer dados do usuário, e também na tarefa de cópia para essas áreas, vamos mudar a legenda de lida com sucesso para leitura com erros. Isso será necessário para a detecção posterior de arquivos corrompidos por sobregravações.
Para um uso mais conveniente das ferramentas analíticas Extrator de dados, é necessário descrever a seção na tabela de partição e criar um setor de inicialização para a partição ExFAT.

Figura: 20 Tabela de partições com um volume ExFAT registrado
No deslocamento 0x1D2, insira o tipo de volume 0x07. Este tipo é usado para NTFS e ExFAT.
No deslocamento 0x1D6, o ponteiro para o início do volume ExFAT. Que sejam 32 setores (0x20).
No deslocamento 0x1DA, escreva o tamanho de volume máximo permitido para a tabela de partição clássica (embora este valor seja menor que o tamanho do volume real, mas neste caso é aceitável, uma vez que não planejamos montar este volume danificado em qualquer sistema operacional, e precisamos de um valor diferente de zero apenas para operação normal das ferramentas Data Extractor).

Figura: 21 Setor de inicialização ExFAT
Como o extrator de dados é muito sensível ao conteúdo do setor de inicialização ExFAT, preencher apenas os campos importantes muitas vezes é insuficiente (o que não é muito lógico) e é tão fácil exibir a seção no explorador interno, como era no diagnóstico no Image Explorer, não exercite-se. Portanto, no caso do setor de inicialização ExFAT, é melhor pegar um modelo padrão e inserir os valores corretos nele.
Para nossa conveniência, escreveremos o setor de inicialização na forma que seria se a unidade fosse usada como um dispositivo com um setor de 512 bytes. Isso nos fornecerá o correto funcionamento de todas as ferramentas do complexo sem a reconstrução desnecessária do mapa.
Preencha os campos:
Bytes por bloco- o número de bytes no setor. ExFAT especifica a potência à qual 2 deve ser elevado para obter o tamanho.
Bloco por cluster - o número de setores no cluster. Também indica o grau em que você precisa aumentar 2 para obter a quantidade.
Total de clusters O número de clusters disponíveis no volume. Inserimos o valor 3 815 304. Ele é obtido multiplicando o tamanho do bitmap por 8.
Blocos totais - o número de setores. O valor é obtido multiplicando o Total de Clusters pelo tamanho do cluster (que por sua vez é obtido pela multiplicação de Bytes por Bloco por Blocos por Cluster).
Deslocamento FAT- deslocamento do setor de inicialização para a tabela de alocação de arquivos. Vamos criar uma estrutura vazia e colocá-la no setor 64. Adicione um título padrão a ela.
Bloco por FAT - o número de setores ocupados pela tabela FAT. Seu tamanho é fácil de calcular com base no número de clusters. Bloco Por FAT = Total de Clusters / (Bytes por Bloco / 4) com arredondamento adicional para o número inteiro mais próximo. 3815 304 / (512/4) = 29 807, 0625 = 29 808.
(Não importa o quão duro algumas fontes tentem chamar ExFAT um sistema de arquivos de 64 bits, a tabela de alocação de arquivos é de 32 bits, mas, ao contrário do FAT32, para 32 bits são usados para endereçamento, não 28.)
Número de FATs - número de cópias da tabela. Infelizmente, ao criar partições, geralmente é 1.
Cluster Heap Offset- indica o deslocamento para o bitmap em setores.
Root Dir Cluster - o número do cluster do diretório raiz.
Depois que a seção estiver disponível no explorador do extrator de dados, construiremos um mapa do espaço ocupado usando um bitmap.

Figura: 22 Mapa do espaço ocupado por estruturas ExFAT e dados do usuário de acordo com o bitmap.
Também construiremos um mapa de localização de arquivo com base nos registros de arquivo existentes, classificar pela ordem em que os arquivos estão localizados no disco e compará-los com os dados de bitmap.

Figura: 23 Fragmento do mapa de localização dos arquivos disponíveis no volume ExFAT Com base
nos resultados da construção do mapa de localização dos arquivos, observamos um "buraco" bastante extenso no intervalo lógico de 718 528 a 57 131 008. É óbvio no bitmap que esta área é ocupada por dados do usuário. Além disso, ao pesquisar por expressões regulares em todo o disco, foram encontrados sinais de dados nesta área.
Nesse caso, confirma-se a ocorrência de danos a este sistema de arquivos e a necessidade de outras ações analíticas.
Inverta o mapa de localização do arquivo para obter uma lista de cadeias de espaço que não são descritas pelos registros de arquivo existentes. Excluímos todas as cadeias, cujo tamanho é menor que o tamanho do cluster, uma vez que esses serão fragmentos livres de clusters que não são completamente ocupados pelos dados do usuário gravados neles. Mapeamos para um bitmap e deixamos apenas strings sobrepostas nesses intervalos.
O resultado restante está sujeito a análise posterior - pesquisa de diretórios ExFAT. Vamos criar um diretório no qual formaremos entradas - ponteiros para os diretórios encontrados, bem como inseriremos as entradas dos fragmentos de diretórios encontrados. Os diretórios encontrados devem ser verificados quanto ao conteúdo das entradas que cruzam com os diretórios disponíveis, estabelecer seus relacionamentos e também verificar a correspondência dos cabeçalhos dos arquivos apontados pelas entradas nesses diretórios e filtrar os diretórios irrelevantes. A perda de diretórios pode ser causada por erros no sistema de arquivos durante a exploração do disco ou pela sobreposição parcial de novos dados gravados no disco.

Figura: 24 Diretório com ponteiros para estruturas encontradas que não possuem objeto pai.
Além disso, tendo suplementado o mapa de localização do arquivo com objetos encontrados nos diretórios perdidos, continuaremos a repetir os procedimentos com a construção de um mapa invertido levando em consideração a interseção com o bitmap. Nas cadeias obtidas desta forma, é necessário buscar expressões regulares para vários tipos de arquivos do usuário.
Esta é a etapa final do trabalho analítico, cujo resultado serão os resquícios dos dados do usuário, para os quais não existem elementos do sistema de arquivos que descrevam sua localização. Observe que essas medidas nos ajudaram a não incluir no resultado final vários resíduos de dados que poderiam ter sido excluídos anteriormente pelo próprio usuário.
Após a conclusão dessas operações, você pode começar a copiar os dados encontrados, levando em consideração a presença no mapa da localização dos setores do arquivo "lido com um erro" e, assim, eliminar os arquivos que são sobrescritos exclusivamente com novos dados. Criamos as marcas de "leitura com erro" após construir os mapas de recursos FAT32 e HFS +.
Isso completa o trabalho. O resultado máximo possível de arquivos não fragmentados foi obtido mantendo a hierarquia de diretório original, e quase todos os arquivos perdidos possíveis foram encontrados sem incluir neste resultado vários dados de lixo típicos de programas de recuperação automática.
Postagem anterior: Autodiagnóstico de discos rígidos e recuperação de dados