Deixou alguma vez apagar ficheiros importantes por engano? Quem não o faz! Está bem, mas posso recuperá-los? Neste post, aprenderá como recuperar ficheiros apagados em Linux usando vários programas em diferentes sistemas de ficheiros.
Verá como recuperar ficheiros apagados de cartões SD, HDD, e partições apagadas em diferentes sistemas de ficheiros Linux tais como EXT3, EXT4, e até de sistemas de ficheiros Windows tais como FAT32 & NTFS.
Tabela de conteúdos
Recuperar ficheiros da partição eliminada
Isto é um problema e tanto. Muitas vezes, os utilizadores de Linux instalam frequentemente vários sistemas ao mesmo tempo, e podem apagar uma partição por engano durante o processo de instalação.
No entanto, como recuperar ficheiros dessas partições apagadas? Para isso, precisamos de recuperar a partição utilizando uma ferramenta chamada TestDisk.
Testdisk é um poderoso utilitário de análise de partição e recuperação de dados. A maioria das distribuições Linux como Debian e Ubuntu vem com TestDisk.
Por outro lado, a aplicação é multi-plataforma e suporta um grande número de tabelas de partições como Intel, MSDOS, e Mac. Estas são as tabelas de partição mais populares.
Também, suporta muitos sistemas de ficheiros como NTFS, EXT4, e outros sistemas de ficheiros não populares como BeOS e ReiserFS.
Quando se apaga um ficheiro, a lista de clusters ocupados pelo ficheiro é apagada, marcando os sectores disponíveis para a utilização. Se os clusters não tiverem sido substituídos, o TestDisk pode recuperar os ficheiros.
P>Primeiro, iniciar a aplicação assim:
$ testdisk
P>Próximo, tem a opção de criar um novo ficheiro para os registos. Se desejar criar um, escolha a opção de criar e prima Enter. Se não quiser um ficheiro de registo, seleccione a opção No Log.
Next, os discos ou partições reconhecidos pelo sistema serão digitalizados. Neste caso particular, sda é a partição que queremos recuperar.
TestDisk reconhece vários tipos de tabelas de partições. É normalmente Intel, a menos que esteja a utilizar uma especializada.
No ecrã seguinte, verá uma série de opções que o programa tem. Para este caso particular, precisamos de escolher a opção Analyse.
Com esta opção, o programa analisará exaustivamente o disco para encontrar a estrutura.
Então, perguntará sobre o tipo de pesquisa que deseja fazer. Normalmente, escolha a opção Pesquisa Rápida.
Se tiver sorte, verá a partição eliminada. Se não, terá de escolher uma pesquisa mais profunda.
Então, escolha a opção Escrever para escrever a tabela de partição. Quando terminar, reinicie o sistema, e terá a sua partição de volta!
Note que, durante estas etapas, pode demorar muito tempo. Depende do tamanho do disco.
De acordo com o tipo de sistema de arquivo, esta partição pode ter, instruções particulares serão seguidas. Serão detalhadas mais tarde.
Recuperar ficheiros apagados de uma unidade externa
Agora imaginemos que temos uma unidade flash externa, e por engano, apagou alguns ficheiros da mesma. Como recuperá-los?
P>P>Pelos agradecimentos ao TestDisk, o processo torna-se bastante semelhante ao de uma partição apagada. Mas existem algumas diferenças.
Para iniciar o programa, utilizaremos o comando testdisk. Também, podemos adicionar a unidade flash como um parâmetro como este:
$ sudo testdisk /dev/sdb
Next, seleccione prosseguir. Depois, escolha o tipo de tabela de partição.
Então, seleccione as opções Avançadas para recuperar ficheiros.
O passo seguinte é seleccionar a partição e a opção Desmarcar.
Então, verá todos os ficheiros apagados na partição.
Agora, seleccione a pasta de destino para colocar os ficheiros recuperados. Tem de premir C na primeira opção para colocar os ficheiros no directório actual.
Finalmente, verá esta mensagem:
Congratulações! Ficheiros restaurados.
Recuperar ficheiros apagados do cartão SD
Usualmente, num cartão SD, é comum reparar que são utilizados para ficheiros multimédia. Portanto, é aconselhável utilizar um programa mais especializado para estes ficheiros.
Neste caso, utilizaremos a aplicação chamada Photorec que vem incorporada no TestDisk.
P>Primeiro, inserir o cartão SD no PC. Em seguida, executar photorec como root:
$ sudo photorec
Então, verá a seguinte imagem. Seleccione o suporte e prossiga e prima Enter.
Next, seleccione a partição. E seleccione Options e prima enter.
>p>í verá as opções de recuperação:
Pressionar q para voltar ao ecrã anterior. É necessário escolher os tipos de ficheiros que queremos recuperar. Isto é conseguido seleccionando a opção File Opt.
Pressione a tecla s para seleccionar e desmarcar todos os formatos. Pode também seleccionar os tipos de ficheiros que deseja recuperar utilizando a chave certa. Para guardar as opções seleccionadas, prima a tecla b. Volte ao menu principal utilizando a tecla q.
Então, no menu principal, escolha a opção Pesquisar para iniciar o processo. E escolha o sistema de ficheiro.
ser-lhe-ão então apresentadas duas opções. Livre e Integral. Normalmente, Grátis é suficiente. Se quiser fazer uma análise profunda, escolha Whole, mas tenha em mente que isso irá atrasar o processo.
Agora, é necessário escolher o local onde os ficheiros serão guardados. Para o fazer, prima a tecla c.
Após escolher o destino, o processo de recuperação será iniciado. Lembre-se de que o sistema irá colapsar e congelar. Portanto, seja paciente.
No final, verá uma mensagem informando-o de tudo o que aconteceu.
P>Next, verifique os resultados.
Recuperar ficheiros apagados de NTFS
NTFS é um sistema de ficheiros do Windows. Se for um daqueles que utilizam ambos os sistemas no computador, então poderá necessitar de recuperar ficheiros apagados de uma partição do Windows com este sistema de ficheiros.
Para o fazer, temos uma ferramenta chamada ntfsundelete que é bastante simples de utilizar.
P>Primeiro, necessita de digitalizar o disco ou partição. Por exemplo:
$ sudo ntfsundelete /dev/sda1
Então, poderemos recuperar o ficheiro apagado com o seguinte comando:
$ sudo ntfsundelete -u -m
Os ficheiros recuperados pertencem agora ao utilizador raiz. O último passo é alterar as permissões e proprietários dos ficheiros usando o comando chown.
Recuperar ficheiros de FAT32
Um outro sistema de ficheiros comum do Windows é o FAT32. É possível recuperar ficheiros a partir de FAT32 usando o TestDisk.
Então, executar novamente o disco de teste como utilizador root e passar o disco como parâmetro:
$ sudo testdisk
Então, continuar os passos descritos acima para restaurar os ficheiros.
Recuperar em ficheiros de memória (Usando inode)
Se eliminar um ficheiro que é usado por outro processo, pode restaurá-lo da memória usando o inode.
Têm de ser estabelecidas algumas condições iniciais. Primeiro, o ficheiro eliminado DEVE permanecer aberto por outro processo. Depois tem de verificar o processo e finalmente recuperá-lo e alterar as suas permissões.
Neste caso, irei criar um ficheiro chamado example.txt usando o nano editor e adicionar algum texto:
$ nano example.txt
Então, guardar as alterações e abrir outra janela de terminal e usar o ficheiro. Por exemplo, com o comando menos.
$ less example.txt
Abrir outra sessão terminal, apagar o ficheiro e certificar-se de que é apagado:
$ rm example.txt$ ls example.txt
Como se pode ver, o ficheiro já não existe. Mas seremos capazes de o recuperar. Para isso, vamos obter o número do processo associado ao inode do ficheiro.
$ lsof | grep example.txt
Você notará o processo e o comando que está a utilizar o ficheiro (o comando menos). A partir dessa imagem, temos de prestar atenção ao segundo e quarto valores. Estes são o PID do processo e o descritor do ficheiro respectivamente.
Então, recupere-o com o seguinte comando:
$ ls -l /proc/2325/fd/4
Então, copie-o para qualquer local desejado, e isso é suficiente para o recuperar.
$ sudo cp /proc/2325/fd/4 .
A seguir, verifique os resultados e abra o ficheiro:
Desta forma, podemos recuperar um ficheiro apagado que ainda está na memória e que é utilizado por um processo com o inode.
Recuperar ficheiros apagados de EXT4 (Usando extundelete)
EXT4 é o sistema de ficheiros padrão na maioria das distribuições Linux. É bastante rápido e com características técnicas que são muito bem aproveitadas pelo kernel Linux.
Uma das ferramentas utilizadas para recuperar ficheiros do sistema de ficheiros EXT4 é extundelete.
Extundelete é uma aplicação de código aberto que permite recuperar ficheiros apagados de uma partição ou disco com o sistema de ficheiros EXT3 ou EXT4. É simples de utilizar e vem por defeito instalada na maioria das distribuições Linux.
Para recuperar um determinado ficheiro, basta usar o seguinte comando:
$ sudo extundelete -restore-file
Por exemplo:
$ sudo extundelete /dev/sdb1 -restore-file home/angelo/other.txt
Se quiser recuperar todos os ficheiros de uma pasta, use o caractere wildcard:
$ extundelete /dev/sda6 -restore-file home/angelo/*
Mas se quiser restaurar todos os ficheiros na partição ou disco, o próximo comando será suficiente:
$ extundelete /dev/sda6 -restore-all
Assim, os ficheiros recuperados estarão no directório RECOVERED_FILES. Assim, é possível recuperar ficheiros apagados utilizando extundelete.
Utilizando debugfs
É também possível utilizar a ferramenta de debugfs para recuperar ficheiros apagados. Esta ferramenta também utiliza o número de inode do ficheiro eliminado. Contudo, funciona apenas em sistemas de ficheiros EXT4.
O funcionamento de Its é também bastante simples. Primeiro, tem de introduzir a partição ou dispositivo.
$ debugfs
Por exemplo,
$ sudo debugfs /dev/sdb1
Então, após algum tempo, poderá iniciar sessão na consola de debugfs para procurar ficheiros apagados recentemente.
$ debugfs: lsdel
Na primeira coluna, verá o número de inode dos ficheiros apagados nesse dispositivo. Depois, restaure-o com o seguinte comando:
$ debugfs mi <inode_number>
E é isso. É bastante fácil.
Usando ext4magic
Outra forma alternativa de recuperar ficheiros apagados num disco com um sistema de ficheiros Ext4 é usar o Ext4magic. Esta aplicação é também bastante simples de utilizar.
A sintaxe mais básica da aplicação é a seguinte:
$ sudo ext4magic -f -r -d
Se eu quisesse recuperar os ficheiros apagados de uma pasta chamada ficheiros, o comando seria semelhante a este:
$ sudo ext4magic /dev/sdb1 -r -d files
É assim que é fácil usar ext4magic. Tudo isto graças ao facto de Ext4 ser um sistema de ficheiros community e open source.
Recuperar ficheiros sobrescritos (Usando Scalpel)
Scapel é outra ferramenta open source que lhe permite recuperar ficheiros de unidades formatadas, ficheiros sobrescritos, e até unidades danificadas. É bem conhecida pela sua velocidade e eficiência. Neste sentido, surge como uma alternativa a considerar.
Scalpel esculpe ficheiros sem a ajuda de sistemas de ficheiros. Tenta extrair cabeçalhos e rodapés de ficheiros e tenta adivinhar toda a estrutura de ficheiros usando alguns algoritmos bem concebidos.
Like TestDisk, está disponível nos repositórios oficiais da maioria das distribuições Linux. Portanto, a sua instalação é reduzida ao uso do terminal e do gestor de pacotes da distribuição.
A forma mais rápida e fácil de usar Scapel é a seguinte:
$ scalpel -o
A pasta_de_saída especifica onde scapel colocará todos os ficheiros recuperados. Note que o Scalpel irá criar o directório de saída em si.
Mas como é que o Scapel sabe quais os ficheiros a recuperar? Bem, isso é definido no ficheiro de configuração da aplicação.
Este ficheiro de configuração está normalmente localizado no seguinte local:
/etc/scalpel/scalpel.conf
E pode abri-lo com o seu editor de texto favorito, e aí só terá de descomentar as linhas para definir os formatos de ficheiro a pesquisar.
Os formatos de ficheiro a descomentar, Scalpel irá procurá-lo.
P>Next, execute o comando Scalpel completo, e na pasta de saída, verá os ficheiros recuperados.
$ sudo scalpel /dev/sdb1 -o recovered_files1
p>Por vezes, Scalpel restaura partes do ficheiro. Isso depende da saúde da unidade e de quantos dados foram corrompidos.
p> Também, há muitos algoritmos de desejo que pode usar, mas discutimos aqui a forma básica de desejo de dados.
Recuperar ficheiros de um sistema não inicializável
Este é um caso delicado porque precisamos de aceder a partir de um cd Live do Ubuntu ou outra distribuição Linux semelhante. Assim que tivermos arranque, poderíamos usar o TestDisk para tentar recuperar os dados.
Neste caso, teríamos de usar um disco externo onde guardar os dados. Por outro lado, no caso do TestDisk não conseguir fazer o trabalho, podemos também tentar extundelete ou ext4magic desde que a partição seja Ext4.
Se não funcionar, poderia tentar regenerar a partição usando TestDisk como explicado acima.
Conclusão
É possível apagar ficheiros acidentalmente. A ideia é conhecer as ferramentas e técnicas apropriadas para recuperar estes ficheiros.
Neste post, cobrimos várias circunstâncias e diferentes sistemas de ficheiros que poderiam ajudar a evitar tais problemas.
Keep voltando.
Obrigado.