Todo sistema de arquivos tem uma assinatura . Então, se você sabe quais sistemas de arquivos foram usados nas partições, então você pode usar um editor hexadecimal para abrir o dispositivo de bloco e procurar pelos sistemas de arquivos. Os sistemas de arquivos tendem a começar no início das partições (ou perto deles), então quando você encontra o começo de um sistema de arquivos, há uma boa chance de você também ter encontrado o setor inicial de uma partição.
As partições tendem a terminar antes do início da próxima partição, então é assim que você determina o setor final; Exceto pela última partição, é claro.
Depois de ter seus setores de início / fim, você pode simplesmente usar uma ferramenta de particionamento para criar essas partições. Em seguida, cruze os dedos e tente montar os sistemas de arquivos.
Naturalmente, há alguns cenários que tornam esse processo difícil ou impossível:
- Se o sistema de arquivos estiver armazenado em um dispositivo de bloco criptografado (ex. LUKS).
- Se houver sistemas de arquivos ou imagens de disco, como aquelas usadas para máquinas virtuais. Sem mais informações, você não seria capaz de dizer a diferença entre uma imagem de disco e uma partição.
O que eu descrevi acima é essencialmente o que testdisk
automatiza para você.