PROCURAR:     
  Sexta, 27/11/2009
» Introdução
» Programação
» Administração
» Hardware
» Aplicativos
» Jogos
» Segurança
» Editorial
» Entrevistas
» Fórum
» Links
» Notícias
» Pegue o Linux
» Documentação
» Programas
» Dúvidas
» Oportunidades
» Sobre
» Contato
» Publicidade
 
Powered By:
DEBIAN
GNU/LINUX
 
English Version
 
 
Recuperando arquivos apagados - parte III
Por: Guilherme Cox

Arquivos grandes (mais de 12 blocks)

O problema aparece para arquivo com mais de 12 blocos. Para conseguirmos recuperar esses arquivos precisamos contar que o disco não está fragmentado. E quanto maior for o arquivo mais difícil vai ser a recuperação total dele. Vamos descrever um pequeno resumo de como funciona o armazenamento de grandes arquivos na filesystem.

Um inode é um identificador unico que um arquivo recebe, nele contém uma lista com 12 blocos diretos de dados que o arquivo deve ter, se ele possui mais de 12 blocos, ele segue um regra para gravar esses blocos no disco e poder achar mais tarde.

  • os 12 primeiros blocos são gravados diretamente, são conhecidos como direct blocks.
  • O inode contém o número para um bloco que seria um bloco indireto. Um bloco indireto contém dados para 256 blocos adicionais.
  • o inode contém o número para um bloco que seria um segundo bloco indireto. Esse contém 256 blocos indiretos adicionais.
  • o inode contém o número para um bloco que seria um terceiro bloco indireto. Esse contém 256 segundos-blocos indiretos adicionais.

O problema consiste em que os blocos indiretos são (geralmente) zerados quando o arquivo é deletado. Então, não existe grandes esperancas ou garantias para achar os blocos caso o arquivo esteja fragmentando, a nossa unica esperanca é considerar que o arquivo está gravado de forma sequencial. Assumindo que ele não está fragmentando podemos usar a tabela abaixo como referência.

0 até 12
Os blocos diretos que são gravados no inode.

13 até 268 Logo apos os blocos diretos, os blocos indiretos. Neste primeiro caso 256 blocos de dados.

269 até 65804
Como antes, depois dos 12 blocos diretos, um bloco indireto inútil (que seria uma lista com os blocos indiretos), e 256 blocos. São seguidos por um (inútil) segundo-bloco e 256 repetições de blocos (inúteis) mais 256 repetições de blocos de dados.

E assim por diante. Você não precisa entender a fundo como isso funciona, apenas os conceitos são importantes.

Estamos contando que nenhum dos blocos foi sobrescrito e que ele foi gravado de maneira sequência. Outro fator importante é verificar que o nosso blocksize é de 1024. Você pode estar adotando outro valor para o seu filesystem. Considera sempre blocksize/4 o número de blocos que podem ser gravador indiretamente por um inode.

Veja o exemplo abaixo:

    debugfs: stat <1387>
     Inode: 148004 Type: regular Mode: 0644 Flags: 0x0 Version:
    1
     User: 503 Group: 100 Size: 1851347
     File ACL: 0 Directory ACL: 0
     Links: 0 Blockcount: 3616
     Fragment: Address: 0 Number: 0 Size: 0
     ctime: 0x31a9a574 -- Mon May 27 13:52:04 2000
     atime: 0x31a21dd1 -- Tue May 21 20:47:29 2000
     mtime: 0x313bf4d7 -- Tue Mar 5 08:01:27 2000
     dtime: 0x31a9a574 -- Mon May 27 13:52:04 2000
     BLOCKS:
     8314 8315 8316 8317 8318 8319 8320 8321 8322 8323 8324 8325
    8326 8583
     TOTAL: 14

Grandes chances desse arquivo ser sequencial, podemos notar isso pelos blocos diretos.


Próximo»

Arquivos grandes (mais de 12 blocks)
Recuperando o arquivo
Conclusão


Enviar para um amigo

Imprimir

Índice de artigos

ENQUETE
Quais são as suas expectativas quanto ao OpenSUSE 11.2?

Que ele venha mais rápido
Seja mais leve
Mais bonito
Outros


NEWSLETTER
Inscreva-se e receba as últimas notícias, programas, artigos, novidades e tudo do mundo Linux que aconteceu na semana.
 
Digite seu email:

Publicidade / Sobre OLinux / Entre em Contato / Privacidade
Copyright (c) 1999-2009, OLinux - O Portal de Linux do Brasil.
Desenvolvido por: Linux Solutions
Todos os Direitos Reservados.