Recuperando arquivos excluídos acidentalmente

79

Excluí acidentalmente um arquivo do meu laptop. Estou usando o Fedora. É possível recuperar o arquivo?

crskhr
fonte
9
qual é o seu sistema de arquivos?
Echox 03/10/10

Respostas:

94

Eu desaconselho a instalação imediata de algum utilitário. Basicamente, seu maior inimigo aqui são gravações em disco. Você deseja evitá-los a todo custo agora.

Sua melhor aposta é um backup automático criado pelo seu editor - se existir. Caso contrário, eu tentaria o seguinte truque usando grep se você se lembrar de alguma sequência exclusiva no seu arquivo .tex:

$sudo grep -i -a -B100 -A100 'string' /dev/sda1 > file.txt

Substitua /dev/sda1pelo dispositivo em que o arquivo estava e substitua 'string'pela string exclusiva do seu arquivo. Isso pode levar algum tempo. Mas, basicamente, o que isso faz é procurar a sequência no dispositivo e retornar 100 linhas antes e depois dessa linha e inseri-la file.txt. Se você precisar de mais linhas retornadas, ajuste as opções -Be -A, conforme apropriado. Você pode receber um monte de lixo extra, mas poderá recuperar seu texto.

Boa sorte.

Steven D
fonte
8
Alguém me mostrou isso algumas semanas depois que mudei para o Linux, quando matei um documento de texto que eu realmente precisava - isso me impressionou bastante
Michael Mrozek
18
A propósito, -B100 -A100pode ser substituído por equivalente -C100(C para "contexto"). E eu definitivamente não usaria -ise fosse possível, mas tenho -Fem seu lugar.
rozcietrzewiacz
Provavelmente, sem surpresa - presumo que os mesmos blocos de disco tenham sido reutilizados - esse método não funcionou para um arquivo que eu substituí acidentalmente, e que não foi excluído acidentalmente.
Ntc2
Sim, na maioria dos sistemas de arquivos, os mesmos blocos são reutilizados quando um arquivo é apenas substituído. Observe que alguns aplicativos "resolvem isso" em certo sentido, primeiro escrevendo um arquivo temporário (o que o torna uma gravação separada) e depois renomeando esse arquivo sobre o arquivo antigo (que substitui os dados do ponto de vista do usuário). Isso é feito por vários motivos diferentes. Os sistemas de armazenamento (incluindo sistemas de arquivos) que fazem isso o tempo todo são denominados cópia na gravação .
um CVn
você precisa de / dev / sda1 ?? Você pode simplesmente ir ao diretor onde estava o arquivo e executar sem / dev / sda1?
precisa
22

É possível, será apenas um aborrecimento.

ATUALIZAÇÃO: antes de tentar esse método, dê uma olhada na resposta de Steven .

Você precisará do pacote testdisk , muito espaço em disco e muito tempo.

PhotoRec, parte do TestDisk, pode recuperar arquivos de praticamente qualquer disco. PhotoRec suporta encontrar .texarquivos.


Primeiro, instale o testdisk executando

yum install testdisk

nota: você precisará de muito espaço livre em outra unidade, onde poderá salvar os arquivos recuperados.

Recupere todos os arquivos excluídos do seu disco, executando photoreco espaço livre do disco.

sudo photorec

e siga as instruções ... (lembre-se de não salvar os arquivos no mesmo disco em que você está se recuperando)

Após a conclusão do processo, todos os arquivos recuperados devem estar em um diretório, onde você deve executar:

find -name '*.tex' > filelist

Isso produzirá uma lista de arquivos que podem ser os que você perdeu. Você precisará verificar todos eles, pois os nomes dos arquivos serão perdidos.

Stefan
fonte
11
photorec é um bom utilitário, eu só estaria preocupado com as gravações em disco que acontecerão durante a instalação. Existe alguma maneira de obter isso como um executável independente que pode ser executado a partir de mídia externa?
Steven D
1
Sim, você está muito certo. Eu não sei sobre um executável independente, mas alguém poderia tentar usar algum live-cd?
Stefan
2
Para reduzir os arquivos recuperados com o Photorec, a terceira tela exibirá [File Opt]. Você pode selecionar em uma lista quais tipos de arquivo deseja ou não ser recuperado.
Steve Burdine
13

Muitos editores de texto mantêm arquivos de backup. Se você tiver realmente sorte, pode haver algo como o seu arquivo.tex ~, incluindo uma versão anterior do seu arquivo.

fschmitt
fonte
4

De qualquer forma, eu pararia de trabalhar no dispositivo que está sendo usado o mais rápido possível para evitar gravações em disco e inicializaria em um sistema operacional de recuperação dedicado, como SystemRescueCd , que é um Live-CD, para que você possa montar seu disco somente leitura em para evitar mais perda de dados.

Essas distribuições incluem muitas ferramentas de recuperação mencionadas por outras pessoas, e você pode instalar a maioria das que estão faltando.

Eu sempre tendem a ter um CD com uma versão recente do SystemRescueCd no meu leitor USB externo, apenas por precaução.

Martin C.
fonte
3

NOTA: Adicionei esta resposta com relação a outra questão sobre arquivos de banco de dados excluídos (servidor MySQL) que foram fechados e apontados para este. Acredito que também possa ser útil em outras situações semelhantes (na medida em que algum processo ainda mantenha os descritores de arquivo abertos).

Se o seu processo ainda estiver em execução, você poderá encontrar seus arquivos /proc/<pid>fd/e copiá-los. Envie SIGSTOPprimeiro para o grupo de processos. Copie os arquivos. Crie uma nova instância de lado e mantenha esta parada ou kill -9coloque os arquivos novamente em seus lugares. O InnoDB se recuperará sozinho ao executar, mas se houver algum MyISAM, você precisará fazer isso manualmente.

pawel7318
fonte
2

Eu acidentalmente excluí meu arquivo sqlite db.

O que eu fiz para descobrir o arquivo foi,

Abriu o local /proc/em um navegador de arquivos e procurou pelo arquivo sqlite db excluído por lá.

Eu descobri esse arquivo em um resultado de pesquisa. Copiei esse arquivo de lá para o meu antigo local.

Thaha kp
fonte
0

Eu tive o mesmo problema há dois anos e tentei muitos programas, como debugfs, photorec, ext3grep e extundelete. O ext3grep foi o melhor programa para recuperar arquivos. A sintaxe é muito fácil:

ext3grep image.img --restore-all

ou:

ext3grep /dev/sda3 --restore-all --after date -d '2015-01-01 00:00:00' '+%s' --before `date -d ‘2015-01-02 00:00:00’ ‘+%s’

Este vídeo é um mini tutorial que pode ajudá-lo.

Juan
fonte
0

Se você não tiver backup, uma Ferramenta de recuperação de disco de terceiros poderá recuperar alguns ou todos os dados, mas você deve parar de usar a máquina agora. Os arquivos da lixeira agora estão disponíveis para o seu sistema substituí-los. Uma vez substituídos, é proibitivamente caro recuperar os dados. Consegui obter sucesso ao usar a recuperação de dados do uflysoft (existem outros aplicativos de recuperação de dados do Mac OS) - você deve ter uma "unidade de recuperação" (não a unidade principal ou a unidade que você utiliza) para salvar os dados recuperados. Você inicializa a partir do disco de recuperação de dados (sistema)

Gallup Noel
fonte