Como estão os arquivos dispostos em ext2 / ext3 / ext4?

8

Alguns dias atrás, todos os meus metadados em um cartão flash no formato ext4 foram sobrescritos.

Agora vou especular sobre como isso aconteceu. Isso é pura especulação. Aconteceu logo depois que eu usei um cartão diferente. O rótulo de volume no cartão é agora o mesmo que o outro cartão. Então, eu suspeito que eu não consegui sincronizar / desmontar a outra placa, quando eu puxei. O leitor de cartão não notifica corretamente o sistema quando um cartão é puxado para a próxima sincronização gerada pelo sistema, o sistema não sabia que eu troquei cartões e ele substituiu os metadados.

A primeira coisa que fiz quando isso aconteceu, é criar uma imagem usando o dd. A segunda coisa que fiz foi tornar a imagem somente leitura. A terceira coisa que fiz foi criar uma cópia gravável da imagem.

Eu descobri o photorec, que conseguiu recuperar algumas coisas, mas não todas. Acho que uma das razões para isso é que não é destrutivo.

Como alguns dos arquivos recuperados são texto, suspeito que o photorec usa informações mínimas sobre o formato do arquivo, se houver.

Para tentar recuperar qualquer um dos outros arquivos do cartão, eu precisaria saber como os arquivos estão dispostos no ext2. Eu suspeito que o básico é que os arquivos são divididos em blocos, que são escritos em setores e informações sobre como encontrar o próximo setor está escrito de alguma forma no setor atual.

O que eu preciso seguir é a informação sobre como o ponteiro para o próximo setor é escrito.

PS: Estou lendo o código photorec, mas estou tendo alguns problemas para lê-lo. Se sou eu ou se o código é feio, não sei.

PPS: Eu encontrei algumas informações sobre como os sistemas de arquivos ext são dispostos, mas não consigo encontrar informações básicas de layout de arquivos.

    
por Mouse.The.Lucky.Dog 03.04.2012 / 04:36

1 resposta

4

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.

    
por 03.04.2012 / 06:22