sexta-feira, 11 de maio de 2012

Recuperar arquivos deletados em Ext4

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 suscetíveis 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:

# tar -xvjf extundelete-0.2.0.tar.bz2

- Precisamos instalar alguns requisitos para compilação:
# yum install gcc-c++ e2fsprogs e2fsprogs-libs 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!

3 comentários:

  1. Bah, já usei para recuperar fotos é uma mão na roda.

    ResponderExcluir
  2. me ajude estou com problema
    entrar em contato pelo email
    lp_jeferson@hotmail.com
    estou disposto a paga.

    ResponderExcluir
  3. AMigo, estou com um problema com um disco de um Storage DLink DNS320L, que os HDs trabalhavam em RAID 1 e morreram juntos. A aplicação disktest chega a enxergar e remontar a MBR das partições, porém, nas copias, ele sempre da erro. Sempre para no meio do caminho. Tenho mais de 500Gb para fazer backup e não consegui copiar mais que 30Gb. Será que poderia me ajudar?

    ResponderExcluir