Recuperar arquivos deletados em Ext4
Autor: Blog de Marcus Burghardt | Publicado: 2012-05-11T13:01:00-03:00


Olá!



Pessoal, hoje passei por uma experiência ruim e ao mesmo tempo boa.



Estive algumas boas horas trabalhando em um projeto e já nas fases finais, momento em que faria os backups em um repositório oficial, acabei deletando uma pasta em um sistema de arquivos Ext4 da VM que fiz especificamente para esse projeto. Nenhum problema quanto a deletar a pasta, o problema é que passei a pasta errada como parâmetro.



Foi aí que me dei conta do erro que cometi e do problemão que havia criado. : )

Como já trabalho há vários anos com isso, já estou vacinado e tinha uma carta na manga. Antes disso havia feito uma cópia dos principais arquivos em um documento que imprimi para o projeto.



Lição: Mesmo com vários anos de experiência estamos&nbsp;suscetíveis&nbsp;a falhas. A diferença está em quão experientes e preparados nós estamos para lidar com essas questões. A pró-atividade SEMPRE faz a diferença.



De qualquer forma achei interessante prosseguir como se eu não tivesse essa cópia de backup. Aí que veio a vantagem ser especialista em Forense Digital. Se eu realmente precisasse recuperar esses dados e não soubesse como, teria que mandar o disco para uma análise. Gastaria muito tempo e muito dinheiro para isso.



Se passarem por uma situação semelhante, espero que esse post possa auxiliá-los a economizarem tempo e dinheiro.



Cenário:

- Tenho um Linux instalado com um sistema de arquivos Ext4.

- Tenho uma pasta com arquivos importantes salvos em /root/PASTA.

- Acidentalmente executei o comando # rm -Rf /root/PASTA

- Estou desesperado e suando mesmo com uma temperatura de 5º C. hehe



Primeiros Socorros:

- Desligue o disco o mais rápido possível.



- Qualquer alteração que tentar fazer ou tentativa desesperada de recuperar algo com o disco montado em "rw" só vai piorar a situação.



- Monte esse disco em "ro" em um outro Linux. Para esse exemplo, a partição / do disco que quero recuperar está representada por /dev/sdb1 no sistema usado para o recover.



Passos para recover:

Bom, essa é uma situação bem simples e fácil de ser resolvida. Nesse caso, apenas uma ferramenta de forense já vai nos trazer de volta aquele sorriso de alegria. hehe



Para essa situação, indico fortemente a ferramenta extundelete.

É uma ferramenta bem robusta e mais inteligente para trabalhar com restaurações em sistemas ext*



- Download:

# wget&nbsp;http://sourceforge.net/settings/mirror_choices?projectname=extundelete&amp;filename=extundelete/0.2.0/extundelete-0.2.0.tar.bz2



# tar -xvjf extundelete-0.2.0.tar.bz2



- Precisamos instalar alguns requisitos para compilação:

# yum install gcc-c++&nbsp;e2fsprogs&nbsp;e2fsprogs-libs&nbsp;e2fsprogs-devel



- Agora compilamos a ferramenta:

# ./configure

# make

# make install (Isso é opcional. Você pode executar os binários direto da pasta src)



- Vamos para os exemplos de restauração:

Recuperar arquivo:

./extundelete /dev/sdb1 --restore-file root/PASTA/arquivo




Recuperar diretório:

./extundelete /dev/sdb1 --restore-directory root/PASTA



Se não conseguir recuperar por ter feito algo no disco antes de desligá-lo, pode tentar restaurar tudo.

./extundelete /dev/sdb2 --restore-all



Tudo que for encontrado será restaurado em uma pasta chamada RECOVERED_FILES.



Espero que isso ajude.

Agora se o negócio estiver bem feio e em uma situação mais complexa, entre em contato com minha empresa: www.timbs.com.br



Faremos o possível para ajudá-lo.



Abraço!