Recuperando dados de partições Ext3 e Ext4


Nessa semana tive que recuperar um arquivo deletado acidentalmente num servidor rodando CentOS com sistema de arquivos Ext4.

A fração de segundo depois que você aperta Enter e percebe seu erro, mas é tarde demais, você acabou de excluir um arquivo ou diretório valioso e não existia nenhum backup. Ou talvez você tinha um backup, mas é de um mês atrás…
E em estado de choque que você vê num flash o último mês passar diante de seus olhos e percebe a dor que vai dar para fazer tudo de novo…
Carlo Wood

Recuperar dados de partições Ext3 e 4 é bastante complicado, como explicado com muitos detalhes neste link.

A primeira coisa a fazer é desmontar a partição afetada ou, se não for possível, desligar o computador e usar um LiveCD de alguma distribuição Linux (usei Ubuntu num pendrive) ou colocar o HD dentro de outra máquina.

Para resolver o problema, eu testei sem sucesso duas ferramentas (foremost e scalpel) que fazem análise sequencial dos blocos do HD procurando por padrões conhecidos, algo que demorou uma eternidade para verificar toda a partição de 1TB que eu tinha e “recuperou” centenas de arquivos corrompidos com nomes do tipo “100201234.jpg” e nada do que eu queria.

Talvez o fato da minha partição ser LVM e a real partição Ext4 estivesse dentro do volume lógico os programas não funcionaram, mas de qualquer forma existe uma solução melhor.

Uma ferramenta chamada Extundelete foi quem salvou meu dia. Ela acessa o journal do sistema de arquivos e consegue achar novamente os arquivos com os nomes originais e, no meu caso, até manteve a estrutura de diretórios de onde estava o arquivo.

Pra usar, instale o “Extundelete” pelo gerenciador de pacotes da distribuição usada (para Ubuntu):
# apt-get install extundelete

ou pegue o código fonte do site e compile com
# ./configure
# make
# make install

Para executar, é preciso passar a partição a ser usada para que o programa monte em modo read only (se for LVM, como no meu caso, vai ser necessário seguir mais alguns passos).
# extundelete /dev/nome_da_particao --restore-all

Em menos de um minuto, o comando acima restaurou centenas de arquivos, incluindo o que eu queria.

About these ads
  1. No trackbacks yet.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.

%d blogueiros gostam disto: