Recuperando Arquivos no Linux.

Started by BobFox, 02 de March , 2006, 01:28:55 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

BobFox

Quando um arquivo eh apagado em seu sistema a unica coisa que acontece no arquivo eh que a sua tabela de inodes eh alterada, porem o arquivo continua existindo e contendo os dados, apesar de nao ser listado nos comandos "ls" nem consumir espaço em disco.

sou pessimo em explicaçoes mas vou fazer o possivel para falar um pouco sobre a estrutura de arquivos e os inodes.

resumindo, sistema de arquivos eh a maneira pela qual o SO organiza e administra arquivos em um hd. depois que eh feita a formataçao do hd, eh necessario colocar um sistema de arquivos nele para que o sistema operacional seja instalado. no filesystem, os arquivos sao armazenados em diretorios que sao subdivisoes logicas funcionando como um repositorio de arquivos e outros diretorios. o conjunto de diretorios e srquivos forma um sistema de arquivos raiz.
no linux hj em dia o ext3 eh um sistema de arquivos mto utilizado, acho q 90% das pessoas utiliza este sistema de arquivos. o ext3 eh uma melhora do ext2 que possui algumas novidades como o "journaling" que permite que mudanças no sistema de arquivos possam ser logadas em um arquivo "journal", fazendo com que o kernel tenha uma imagem atualizada do estado do sistema de arquivos, fazendo com que o fsck nao seja tao necessarios, como por exemplo, qdo o sistema cai por falta de energia ou qdo ele eh resetado.

O sistema de arquivos do Linux eh baseado em uma estrutura de arvores de inodes, essas arvores de inodes sao dispostos em blocos que variam de tamanho entre 1 e 4 Kb. cada inode possui o tamanho máximo de 1 bloco. cada inode pode apontar para a localizacao (fisica/cilindro, setor/trilha) de outro i-nodo ou do bloco inicial de um arquivo.

Cada arquivo ocupa obrigadoriamente no mínimo 1 bloco e nao existe um limite máximo de blocos por arquivos. os arquivos de pequeno tamanho ainda podem estar dispostos no interior dos i-nodos. o file system do Linux nos da várias vantagens como velocidade de acesso, segurança, flexibilidade, criacao de links. os links sao apontamentos de um inode para um certo arquivo, que tb eh apontado por outro inode para o mesmo arquivo. podem ser HardLinks e SoftLinks. basicamente eh isso.

recuperando os arquivos.
se tu excluiu um arquivo de configuração acidentalmente, ou alguem fez isso por vc, eh possivel recupera-lo com um simples comando, bastando para isso tres coisas:

1 - ser um arquivo text (os de conf sao e logs, felizmente)
2 - lembrar de uma parte do texto
3 - saber em qual partição o arquivo estava

se por acaso tu excluiu o arquivo named.conf, que continha as diretrizes de configuraçao do dominio abcd.com, tu usaria um comando como este para recupera-lo:

egrep -a -B5 -100 'abcd.+options' /dev/had1 > /home/seth/arquivo

neste caso, a opçao -A100 quer dizer para procurar pelas strings abcd e options a cada 100 linhas de texto antes e depois desta combinação. ele ira procurar as combinaçao em todos os arquivos deletados e gravar num arquivo chamado "arquivo" no diretorio /home/seth :)

qdo um arquivo eh apagado apenas a entrada na tabela de inodes eh mechida e ele pode ainda ser recuperado como vimos antes, e o mesmo pode acontecer com as partiçoes. entao se tu quer apagar definitavmente um arquivo tu tens que usar um programinha chamado "shared" que eh um "destruidor" de arquivos :)

existem recursos que permitem recuperar ateh 60 deldeçoes de setores do hd, entao o que vamos fazer eh o seguinte: usar o programa shared para regravar 100 vezes um arquivo com dados aleatorios e trunca-lo, e depois de tudo feito, o arquivo serah removido.

o comando eh: shared -n 100 -v -u arquivo

Autor: Seth Steel_Edge

by BobFox
DARKERS - BRASIL - BOBFOX
"O importante é competir, más te mato de pamcada se você não ganhar."