anule a exclusão de um arquivo excluído no ext4 com extundelete

54

Existe uma opção simples de extundeletecomo tentar recuperar um arquivo chamado /var/tmp/test.isoque acabei de excluir?

(não é tão importante que eu comece a remontar a unidade somente leitura ou algo assim. Também posso baixar novamente esse arquivo novamente)

Estou procurando um comando simples com o qual eu possa tentar se conseguir recuperá-lo rapidamente.

Eu sei, é possível remontar a unidade em somente leitura : (consulte Como recupero o único arquivo em um disco vazio que foi excluído? )

Mas isso também é possível de alguma forma no disco ainda montado?

rubo77
fonte
Questão geral com qualquer utilitário: unix.stackexchange.com/questions/2677/...
Ciro Santilli新疆改造中心法轮功六四事件
Essa outra questão é muito ampla. Aqui eu estou procurando uma solução rápida insegura sem muito esforço (e menos chance de sucesso)
rubo77
Não pretendi sugerir duplicado, mas convém adicioná-lo à pergunta por que essa pergunta não foi suficiente.
Ciro Santilli escreveu:

Respostas:

36

Observando o guia de uso no extundelete , parece que você está limitado a recuperar arquivos de várias maneiras.

Restaurando tudo

extundelete foi projetado para recuperar arquivos de uma partição não montada em uma partição separada (montada). O extundelete restaurará todos os arquivos encontrados em um subdiretório do diretório atual chamado "RECOVERED_FILES". Para executar o programa, digite "extundelete --help" para ver as várias opções disponíveis.

O uso típico para restaurar todos os arquivos excluídos de uma partição é assim:

    $ extundelete /dev/sda4 --restore-all

Restaurando um único arquivo

Além deste método destacado no uso da linha de comandos:

--restore-file path/to/deleted/file
    Attemps to restore the file which was deleted at the given filename, 
    called as "--restore-file dirname/filename".

Portanto, você deve conseguir o que deseja fazer o seguinte:

$ extundelete --restore-file /var/tmp/test.iso /dev/sda4

NOTA: Nos dois casos, você precisa conhecer o dispositivo /dev/sda4para executar este comando. Você precisará remontar o sistema de arquivos como somente leitura. Esta é uma das condições de uso extundeletee não há maneira de contornar isso.

slm
fonte
2
sim, mas que todos só funciona, se eu voltar a montar a unidade somente leitura
rubo77
11
@ rubo77 - correto, não há maneira de contornar isso.
Slm
2
Isso realmente funcionou para mim um sistema de arquivos ext4 sem remontá-lo somente leitura. Se você tentar fazê-lo sem remontar R / O, receberá um aviso que parece estar lhe dizendo que sua probabilidade de sucesso é menor se você fizer isso. Se é realmente super vital recuperar o arquivo, parece que você deve fazer isso.
quer
Como @BenCrowell eu usei sem remontar, mas programa anúncios me sobre a corrupção de dados se eu continuar usando HDD ... foi um apagar recentemente então eu apenas pressione Enter em seguida, obter meus arquivos de volta;)
erm3nda
16

O cenário de uso típico ao excluir todos os arquivos inclui a necessidade de restaurar todos os arquivos excluídos /dev/sdX1durante aproximadamente a última hora:

mount -o remount,ro /dev/sdX1
extundelete --restore-all --after $(date -d "-2 hours" +%s) /dev/sdX1
find RECOVERED_FILES/

Se estiver satisfeito com os arquivos recuperados:

mount -o remount,rw /dev/sdX1
sanmai
fonte
mount: você deve especificar o tipo de sistema de arquivos
remount espera ponto de montagem como argumento e não o dispositivo
Não se preocupe, criança
@ Don'tYouWorryChild mount -oleva quer dir ou dispositivo, como porman mount
sanmai
Em vez de subtrair 2 horas da data que você pode fazer, $(date -d "-2 hours" +%s)a saída de lsblk -ppode ser útil para descobrir onde está localizado o volume EXT4 em cache do LVM criptografado pelo LUKS. ;)
LiveWireBT