O Linux pesquisa todos os bytes hexadecimais do disco rígido para a cadeia de bytes e lista todos os arquivos aos quais os dados pertencem? [fechadas]

0

Desculpas pelo título. Para ser mais específico, lembro-me de ter lido isto algures no ano passado, quando tentava reparar danos em dados num disco rígido.

Eu tenho um disco rígido do Windows XP que sofreu uma queda de cabeça e causou setores defeituosos irrecuperáveis em determinados arquivos. Eu estou clonando a unidade para uma unidade duplicada e substituindo os arquivos que foram danificados usando um backup que eu tinha de muito tempo atrás.

O que eu já fiz é ... Eu iniciei no Parted Magic do Ultimate Boot CD e usei as ferramentas ddrescue do linux para clonar o drive danificado em uma imagem de disco, então usei o logfile.txt para escrever DEADBEEF em todos os setores ele não pôde ler / clonar no arquivo de imagem de disco e fazer uma imagem completa. Eu então usei um dos comandos do linux grep, eu acredito, para tentar pesquisar o sistema de arquivos inteiro para a string DEADBEEF e listar todos os arquivos que continham aquela string, apesar de ter alguns problemas com ela encerrar horas na busca devido a algum erro estranho.

Eu também consertei manualmente os erros do $ MFT (Master File Table), tudo exceto os dados de um único arquivo de imagem que não são importantes, para que eu pudesse escanear o sistema de arquivos inteiro e ver todos os arquivos (alguns não estavam aparecendo devido ao dano).

O que preciso fazer é isto:

Eu quero escanear completamente a unidade inteira até o nível de byte (como se estivesse olhando para a imagem de disco em um editor hexadecimal), cada setor, para a cadeia DEADBEEF, então liste todos os arquivos sobrescritos pelo setor defeituoso. DEADBEEF pertence de acordo com o sistema de arquivos. Lembro-me de ler sobre isso em algum lugar, ser capaz de varrer a unidade e, uma vez encontrada a cadeia, ela lista o deslocamento / localização / setor da cadeia DEADBEEF e qual arquivo possui os dados nesse setor. Isso, ou todos os setores defeituosos e lista a qual arquivo o setor ruim pertence.

O arquivo de log do ddrescue lista todos os setores que foram detectados como ilegíveis (cerca de 1000 setores de 200 bytes), onde ele escreveu DEADBEEF para. Se eu souber quais arquivos possuem esses setores defeituosos, posso substituí-los usando meu backup antigo.

Antes de perguntar, não posso usar apenas o backup antigo porque tem cerca de 3 anos. O backup antigo é na verdade a unidade original deste computador, que eu clonei nesta unidade que estou tentando resgatar. A maioria dos setores defeituosos da falha do disco rígido estava em uma parte da unidade que só tinha arquivos que estavam presentes na unidade original. Eu posso facilmente copiar esses arquivos do original para o novo disco para consertar todos os setores defeituosos do DEADBEEF, mas preciso saber a que todos os arquivos pertencem aqueles setores defeituosos.

Mais uma vez, lembro de ter lido algo sobre a varredura de todos os setores de uma unidade e fazer com que ela listasse qualquer arquivo ao qual determinado setor pertencia. Então, como faço isso da Parted Magic? Eu tenho que montá-lo lá, então ele é montado como somente leitura.

    
por DCX 14.04.2017 / 05:56

1 resposta

1

Você pode fazer como o comentário útil de steeldriver diz e usa ddrutility

Ele não parece estar nos repositórios do Ubuntu, mas a home page é link
Use especificamente sua ferramenta ddru_findbad
Aqui está um clipe da página wiki :

% bl0ck_qu0te%

Estou tentado a esquecer os números do setor e montar a imagem clonada & amp; pesquisar todos os arquivos por "DEADBEEF", com find, xargs & amp; grep em um Ubuntu (ou Xubuntu, Lubuntu, ou Debian, mais qualquer Linux).

Se é mais fácil ou mais rápido do que tentar ddru_findbad ou não, provavelmente, depende de quão grande & amp; rápido sua imagem de disco é.

find /mnt/x -type f -print0 | xargs -0 grep --files-with-matches "DEADBEEF" >> list

Onde a imagem é montada em /mnt/x . Em seguida, a lista de arquivos tem todos os nomes de arquivos correspondentes. Qualquer espaço livre que tenha DEADBEEF será ignorado.

    
por Xen2050 14.04.2017 / 10:10