Não conheço nenhuma ferramenta de recuperação de arquivos que selecione arquivos com base em uma string específica que eles contêm, mas esses três métodos devem funcionar:
-
Quando um arquivo em uma partição FAT32 é apagado, seu nome de arquivo não é sobrescrito. Somente o primeiro byte do nome do arquivo 8.3 é definido como E5 , marcando o arquivo como excluído. Isso não afetará a extensão, então os arquivos TXT ainda são facilmente reconhecíveis.
Você pode usar qualquer ferramenta de recuperação de arquivos que permita especificar uma extensão (por exemplo, Recuva ), recuperar todos os arquivos TXT e, em seguida, pesquise diário em todos os arquivos recuperados.
Como os arquivos de texto são (geralmente) pequenos, a recuperação dos arquivos de texto não deve levar muito tempo (provavelmente menos do que encontrá-los). Para uma partição de 150 GB, isso deve ser bastante rápido.
-
Programas como o PhotoRec identificam os arquivos pelo conteúdo e tentam recuperá-los. Embora seja verdade que os arquivos de texto não possuem nenhum cabeçalho, o PhotoRec ainda consegue identificá-los (por exclusão, suponho).
Novamente, você pode recuperar todos os arquivos de texto e pesquisar diário em todos os arquivos recuperados.
A identificação dos arquivos de texto pelo seu conteúdo demorará mais do que pela extensão, mas também encontrará arquivos cuja entrada de diretório foi sobrescrita.
-
Como você não espera que os arquivos de texto sejam grandes, você também pode procurar por diário no dump de partição e recuperar o cluster que o contém:
sudo bash -c ' for OFFSET in $(grep -abio diary /dev/sda3 | cut -d: -f 1); do ((CLUSTER = OFFSET / 4096)) dd if=<imgfile> of=cluster$CLUSTER.txt bs=4096 skip=$CLUSTER count=1 done '
Como funciona:
-
grep -Pabio diary /dev/sda3 | cut -d: -f 1
imprimirá os byte offsets de todas as ocorrências da string diário no arquivo de imagem.A opção
-i
torna a pesquisa insensível a maiúsculas e minúsculas. A chave-P
ativa expressões regulares compatíveis com Perl. Isso é necessário por causa de um bug em algumas versões do (GNU) grep que faz com que as buscas, que não diferenciam maiúsculas de minúsculas, sejam insuportavelmente lentas, a menos que você use o PCRE. -
((CLUSTER = OFFSET / 4096))
calcula o deslocamento em clusters a partir do deslocamento em bytes. -
dd if=<imgfile> of=cluster$CLUSTER.txt bs=4096 skip=$CLUSTER count=1
escreve o cluster no deslocamento X em um arquivo chamado clusterX.txt .
Por sua natureza, isso funcionará apenas para arquivos que se encaixam em um cluster. Você pode aumentar count para recuperar mais de um cluster e diminuir CLUSTER para recuperar clusters anteriores também.
Para recuperar três clusters (um antes e um após o cluster que contém o diário ), faça as seguintes alterações:
((CLUSTER = OFFSET / 4096 - 1)) dd ... count=3
-