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.
Índice
rm: Abreviação de Remorse?
É muito fácil usar o rm
comando 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.
É aqui que testdisk
entra. É 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 testdisk
no Ubuntu, use este comando:
sudo apt-get install testdisk
No Fedora, você precisa digitar:
sudo dnf install testdisk
No Manjaro, você deve usar pacman
:
sudo pacman -Sy testdisk
Usando testdisk
Embora seja executado em uma janela de terminal, testdisk
possui 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
Digite o seguinte para mudar para o novo diretório e começar a testdisk
partir daí:
cd restaurado /
Temos que usar sudo
com testdisk
, então digitamos o seguinte:
sudo testdisk
A primeira testdisk
pergunta é 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 testdisk
opera.
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, testdisk
pergunta 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.
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.
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.
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.
O menu de seleção de partição aparecerá.
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á.
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 dave
e, a seguir, pressionamos a seta para a direita ou Enter para entrar nesse diretório.
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.
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 testdisk
partir dele, a primeira entrada na lista (.) É esse diretório. Para recuperar esse arquivo excluído para aquele diretório, pressionamos C (maiúscula).
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 testdisk
para 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
Vamos dar uma outra olhada nos arquivos recuperados usando a opção -l
(lista longa):
ls -l
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 *
Digitamos o seguinte para garantir que a propriedade correta foi restaurada:
ls -l
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.