
Depois de umanálise infeliz do CHKDSK que corrompeu muitos arquivos em um disco rígido de 3 TB(erroneamente detectado como 746 GB, provavelmente porque um controlador USB2 é incompatível com capacidades acima de 2 TB), gostaria de fazer uma comparação precisa desses arquivos (com suas contrapartes corretas em um HDD de backup) e extrair as áreas corrompidas para posterior investigações, antes de excluí-las.
Até agora, procedi assim:
- Abra ambas as versões do arquivo no WinHex. Ative a tela “Sincronizar e comparar”.
- Execute uma comparação no deslocamento 0, salve um relatório (obrigatório neste software, não há como encontrar diretamente a próxima diferença) com o nome do arquivo, especifique um limite de 10.000 erros (para evitar relatórios muito grandes).
- Assim que parar (tendo atingido o final do arquivo ou o limite de 10.000 bytes diferentes), abra o relatório TXT, copie o deslocamento da primeira diferença no menu "Ir para deslocamento" do WinHex. Marque o primeiro erro (que está sempre no limite do setor) como o início de um bloco.
- Pesquise o final da área corrompida rolando para baixo ou, se demorar muito, adicione 1 MB ou 100 KB até sair e role para cima (não encontrei maneira de tornar isso mais fácil no WinHex). Marque o final do último setor da área corrompida como o final do bloco.
- Extraia o bloco como um novo arquivo, com o padrão "Nome_do_arquivo [1111-2222]" onde "1111-2222" são os deslocamentos início-fim.
- Retomar a comparação ao final da área corrompida previamente identificada, para procurar outras, até o final do arquivo...
Agora, haveria uma maneira de automatizar esse processo meticuloso e demorado? Existem outros editores hexadecimais mais adequados para comparações de arquivos? Ou eu poderia usar um script para fazer isso tudo de uma vez? Encontrei uma pequena ferramenta de linha de comando brilhante chamadadsfok(DS File Ops Kit) que pode extrair um bloco de dados entre dois valores de deslocamento (entre outras funções que ainda não testei). Então, eu precisaria de outra ferramenta de linha de comando para realizar a comparação e obter esses valores de deslocamento, além de dicas para escrever um script para fazer essas ferramentas funcionarem juntas. Obrigado.