Como recuperar arquivos excluídos no Linux com testdisk

Uma ilustração de uma janela de terminal em um computador Linux.
Fatmawati Achmad Zaenuri / Shutterstock

Você já excluiu um arquivo e se arrependeu instantaneamente? Você precisa disso de volta e rápido! Mas e se o arquivo for tão novo que ainda não tenha sido feito o backup? Felizmente, há algo que você pode fazer a respeito.

rm: Abreviação de Remorse?

É muito fácil usar o rmcomando e você se vê olhando para uma janela de terminal com um profundo sentimento de pesar. Um pequeno erro com curingas, e você pode eliminar muito mais do que pretendia.

O sistema de arquivos padrão do Linux ext4 usa inodes para armazenar dados sobre cada arquivo e uma tabela de inode para rastrear os inodes. O inode contém metadados sobre o arquivo, como seu nome, quem o possui, quais são as permissões e assim por diante.

Ele também contém pontos de entrada para links físicos que apontam para o arquivo. Cada arquivo possui pelo menos um link físico. Cada vez que você cria um novo link físico, a contagem de links físicos aumenta em um. Cada vez que você remove um hard link, a contagem de hard link no inode é reduzida em um.

Quando você exclui um arquivo que o inode marcou como não utilizado (e pronto para reutilização), o último link físico é removido. Quando isso acontece, o arquivo não aparece nas listas de diretórios e não pode ser usado ou acessado.

No entanto, os dados que compõem o conteúdo do arquivo ainda estão presentes no disco rígido. Se você pudesse corrigir o inode para que contivesse as informações corretas, o arquivo seria restaurado. Claro, isso só funcionaria se os dados que compõem o arquivo no disco rígido permanecessem intactos e não fossem substituídos.

Como alternativa, você pode criar um novo inode, copiar os dados remanescentes do inode antigo e, em seguida, substituir os bits ausentes.

Essas são atividades não triviais. Normalmente, quando você exclui um arquivo por engano, é no pior momento possível. É sempre quando você precisa desse arquivo e precisa dele agora. Você não tem tempo para se sujar com os editores do setor e outros utilitários. Além disso, se for um arquivo que você acabou de criar, provavelmente ainda não foi feito o backup, então isso também não vai ajudá-lo.

Recomendado:  Você só precisa limpar um disco uma vez para apagá-lo com segurança

É aqui que testdiskentra. É fácil de usar e não requer conhecimento detalhado e de baixo nível do sistema de arquivos. Vamos dar uma olhada em como usá-lo!

Instalando testdisk

Para instalar testdiskno Ubuntu, use este comando:

sudo apt-get install testdisk

sudo apt-get install testdisk em uma janela de terminal.

No Fedora, você precisa digitar:

sudo dnf install testdisk

sudo dnf instale o testdisk em uma janela de terminal.

No Manjaro, você deve usar pacman:

sudo pacman -Sy testdisk

sudo pacman -Sy testdisk em uma janela de terminal.

Usando testdisk

Embora seja executado em uma janela de terminal, testdiskpossui uma interface rudimentar. Você usa as teclas de seta para navegar e Enter para fazer uma seleção. Para manter as coisas organizadas, é melhor criar um diretório para os arquivos restaurados.

Nós digitamos o seguinte para criar um diretório chamado “restaurado” para nossos arquivos restaurados:

mkdir restaurado

mkdir restaurado em uma janela de terminal.

Digite o seguinte para mudar para o novo diretório e começar a testdiskpartir daí:

cd restaurado /

cd restaurado / em uma janela de terminal.

Temos que usar sudocom testdisk, então digitamos o seguinte:

sudo testdisk

sudo testdisk em uma janela de terminal.

A primeira testdiskpergunta é sobre o registro. Ele pode criar um novo arquivo de log, usar um existente ou não registrar nada. Não importa qual opção você escolher; não afetará a maneira como testdiskopera.

As opções de registro em testdisk em uma janela de terminal.

Você pode simplesmente pressionar Enter para aceitar a opção destacada e criar um novo arquivo de log. Ele será criado no diretório de onde você iniciou testdisk. Quando você faz sua seleção, testdiskpergunta qual disco rígido contém o sistema de arquivos no qual deseja trabalhar.

Ele lista os discos rígidos que pode encontrar, bem como os squashfs arquivos “/ dev / loop”. Haverá um desses para cada aplicativo que você instalou de a snap. Eles são somente leitura, então você não deveria ter excluído nada desses sistemas de arquivos.

Recomendado:  Como interromper a troca automática de AirPods entre iPhone e iPad

Um menu do disco rígido em testdisk em uma janela de terminal.

Há apenas um disco rígido físico neste computador de teste, então usamos a seta para baixo para destacar a opção “/ dev / sda”. Em seguida, usamos a seta para a direita para selecionar “Continuar” e pressionamos Enter.

"Continuar" selecionado em uma janela de terminal.

testdisk também precisa saber o tipo de partição. Ele apresenta um menu de opções, junto com o tipo de partição que é autodetectada na parte inferior.

Menu de tipo de tabela de partição em testdisk em uma janela de terminal.

A menos que você tenha um bom motivo para não fazê-lo, destaque o tipo de partição que foi detectado automaticamente e pressione Enter.

No menu de funções que aparece, destaque “Advanced” e, a seguir, pressione Enter.

"Avançado" selecionado no menu de funções em uma janela de terminal.

O menu de seleção de partição aparecerá.

O menu de seleção de partição em testdisk em uma janela de terminal.

Os arquivos que procuramos estão na partição do sistema de arquivos Linux. Temos apenas uma partição Linux em nosso disco rígido, mas você pode ter mais.

Selecione a partição em que seus arquivos estavam, use as teclas de seta para a esquerda e para a direita para selecionar “Listar” e pressione Enter. O menu de seleção de arquivo aparecerá.

O menu de seleção de arquivo em testdisk em uma janela de terminal.

Use as setas para cima e para baixo ou as teclas PgUp e PgDn para navegar pela lista de arquivos e diretórios. Pressione a seta para a direita ou Enter para entrar em um diretório e a seta para a esquerda ou Esc para sair de um diretório.

Estamos procurando arquivos que pertenciam a dave. Os arquivos de todas as contas de usuário estão no diretório “Home”. Assim, destacamos o diretório “Home” e, em seguida, podemos pressionar a seta para a direita ou Enter para entrar nesse diretório.

Todas as contas de usuário são listadas para nós. Destacamos davee, a seguir, pressionamos a seta para a direita ou Enter para entrar nesse diretório.

Um diretório inicial em testdisk em uma janela de terminal.

Agora podemos ver os arquivos que pertencem à dave conta. As entradas em vermelho foram excluídas. Navegamos pelos arquivos e diretórios até localizar os arquivos que desejamos recuperar.

Arquivos excluídos no TestDisk em uma janela de terminal.

Para recuperar um arquivo, apenas realce-o e pressione c (minúsculo).

O visor muda e informa para você escolher um destino para o arquivo recuperado. Como criamos um diretório chamado “Restaurado” e começamos a testdiskpartir dele, a primeira entrada na lista (.) É esse diretório. Para recuperar esse arquivo excluído para aquele diretório, pressionamos C (maiúscula).

Recomendado:  Como desativar a reprodução automática de vídeos no aplicativo ESPN

O menu de destino do arquivo no TestDisk em uma janela de terminal.

Depois de fazer isso, você retornará à tela de seleção de arquivos. Se você quiser recuperar mais arquivos, basta repetir o processo. Destaque um arquivo excluído, pressione c (minúsculas) para copiá-lo e, em seguida, pressione C (maiúsculas) para recuperá-lo.

Trabalho com arquivos restaurados

Depois de restaurar um arquivo, a árvore de diretórios em seu local original é reconstruída, o que é útil porque lembra onde no disco rígido o arquivo original costumava residir. Isso significa que, se precisar copiá-lo de volta, você sabe onde colocá-lo.

Se você recuperar vários arquivos de locais diferentes do sistema de arquivos que possuem o mesmo nome de arquivo, eles precisarão ser armazenados separadamente de qualquer maneira.

Você pode digitar o seguinte para ver o conteúdo do diretório “Restaurado”:

ls

Se você pediu testdiskpara criar um arquivo de log, ele estará no diretório “Restaurado”. Como nossos arquivos recuperados estavam localizados em “/ home / dave”, eles foram copiados para nosso diretório “Restaurado”, aninhado em diretórios com o mesmo nome.

Podemos mudar para o diretório “dave” copiado usando cd. Certifique-se de não incluir uma barra inicial ( /) no caminho – você deseja alterar para a “casa” local, não o sistema “/ casa”.

Nós digitamos o seguinte:

cd home / dave

Os arquivos recuperados estão nesse diretório, então digitamos:

ls

ls em uma janela de terminal.

Vamos dar uma outra olhada nos arquivos recuperados usando a opção -l (lista longa):

ls -l

ls -l em uma janela de terminal.

Como costumávamos sudo iniciar testdisk, os arquivos recuperados foram restaurados com “root” como proprietário. Podemos mudar o proprietário de volta para “dave” usando chown:

sudo chown dave.dave *

sudo chown dave.dave * em uma janela de terminal.

Digitamos o seguinte para garantir que a propriedade correta foi restaurada:

ls -l

ls -l em uma janela de terminal.

testdisk: Code for Relief

Aquela sensação de alívio depois de recuperar um arquivo importante que, há poucos instantes, parecia irremediavelmente perdido, é algo que você sempre apreciará.

É por isso que testdiské um utilitário tão útil. Depois de percorrer os menus e começar a restaurar arquivos, é fácil cair em um ritmo de destaque, c, C, repetir.