O PhotoRec verifica um disco (ou imagem de disco) procurando por blocos contíguos de bytes que parecem semelhantes a formatos de arquivo (por exemplo, ele pode reconhecer JFIF / EXIF (JPEG) pelos cabeçalhos de segmento). Bastante simples mas limitado.
O Sleuth Kit é uma ótima ferramenta para se aprofundar nos sistemas de arquivos. Com um pouco de cuidado (e scripting suas ferramentas e editando hexadecimamente a imagem do disco quando ela se desgarra), ela pode ser usada para recuperação.
Para uma ferramenta que entende mais profundamente ext, tente ext4magic ? (Eu ainda não tive a necessidade de usar isso ainda.)
Documentation/filesystems/ext2.txt
nas fontes do kernel tem uma visão geral de alto nível da estrutura geral . O Ext4 Wiki tem boas informações, incluindo Layout de Disco Ext4 contendo mais detalhes (aplicando-se também ao ext [23] também).
Mas sim, os dados de um arquivo são divididos em blocos. No ext2, cada arquivo é representado por um inode que contém blocos diretos (ponteiros para blocos de dados), blocos indiretos (que contêm ponteiros para direcionar blocos), blocos indiretos duplos e blocos indiretos triplos. Não há backlinks, então, para encontrar os irmãos de um bloco de dados, você terá que escanear todos os inodes e bloquear os ponteiros para encontrar seu dono primeiro.