Como recuperar um arquivo excluído no Linux
Isso já aconteceu com você? Você percebeu que excluiu um arquivo por engano – seja por meio da tecla Del ou usando rm
na linha de comando.
No primeiro caso, você sempre pode ir até a Lixeira, procurar o arquivo e restaurá-lo ao seu local original. Mas e o segundo caso? Como tenho certeza que você provavelmente sabe, a linha de comando do Linux não envia arquivos removidos para lugar nenhum – ela os REMOVE. Vagabundo. Eles foram embora.
Leitura sugerida: Como recuperar arquivos/diretórios excluídos usando a ferramenta Scalpel
Neste artigo compartilharemos uma dica que pode ser útil para evitar que isso aconteça com você, e uma ferramenta que você pode considerar usar se em algum momento for descuidado o suficiente para fazer isso de qualquer maneira.
Crie um alias para ‘rm -i’
A opção -i
, quando usada com rm (e também outras ferramentas de manipulação de arquivos como cp ou mv) faz com que um prompt apareça antes de remover um arquivo.
O mesmo se aplica a copiar, mover ou renomear um arquivo em um local onde já exista um com o mesmo nome.
Este prompt lhe dá uma segunda chance de considerar se você realmente deseja remover o arquivo – se você confirmar o prompt, ele desaparecerá. Nesse caso, sinto muito, mas esta dica não irá protegê-lo do seu próprio descuido.
Para substituir rm por um alias para 'rm -i'
, faça:
alias rm='rm -i'
O comando alias confirmará que rm agora tem alias:
No entanto, isso durará apenas durante a sessão atual do usuário no shell atual. Para tornar a alteração permanente, você terá que salvá-la em ~/.bashrc
(algumas distribuições podem usar ~/.profile
) conforme mostrado abaixo:
Para que as alterações em ~/.bashrc
(ou ~/.profile
) tenham efeito imediato, obtenha o arquivo do shell atual:
. ~/.bashrc
A ferramenta forense – em primeiro lugar
Esperançosamente, você terá cuidado com seus arquivos e só precisará usar esta ferramenta ao recuperar um arquivo perdido de um disco externo ou unidade USB.
No entanto, se você perceber que removeu acidentalmente um arquivo do seu sistema e vai entrar em pânico – não faça isso. Vejamos primeiro uma ferramenta forense que foi projetada para esse tipo de cenário.
Para instalar principalmente no CentOS/RHEL 7, você precisará primeiro ativar o Repoforge:
rpm -Uvh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
yum install foremost
Enquanto no Debian e derivados, basta fazer
aptitude install foremost
Assim que a instalação for concluída, vamos prosseguir com um teste simples. Começaremos removendo um arquivo de imagem chamado nosdos.jpg
do diretório /boot/images:
cd images
rm nosdos.jpg
Para recuperá-lo, use principalmente o seguinte (você precisará identificar primeiro a partição subjacente – /dev/sda1
é onde /boot
reside neste caso):
foremost -t jpg -i /dev/sda1 -o /home/gacanepa/rescued
onde /home/gacanepa/rescued é um diretório em um disco separado – lembre-se de que recuperar arquivos na mesma unidade onde os removidos estavam localizados não é uma atitude inteligente.
Se, durante a recuperação, você ocupar os mesmos setores do disco onde estavam os arquivos removidos, talvez não seja possível recuperar nada. Além disso, é essencial interromper todas as suas atividades antes de realizar a recuperação.
Após o término da execução, o arquivo recuperado (se a recuperação for possível) será encontrado dentro do diretório /home/gacanepa/rescued/jpg.
Resumo
Neste artigo explicamos como evitar a remoção acidental de um arquivo e como tentar recuperá-lo caso tal evento indesejado aconteça. Esteja avisado, entretanto, que o principal pode demorar um pouco para ser executado, dependendo do tamanho da partição.
Como sempre, não hesite em nos informar se tiver dúvidas ou comentários. Sinta-se à vontade para nos enviar uma mensagem usando o formulário abaixo.