Eu acidentalmente trunca um arquivo usando o gedit. Foi truncado de 1800 kB para 25 kB.
Eu queria compartilhar algumas técnicas de recuperação que tentei. Isso não é para ser uma resposta definitiva, mais uma coleção de respostas para tentar. Isto é semelhante a este post .
Primeiro, remonte o sistema de arquivos como readonly! . Faça isso o mais rápido possível.
sudo mount -o remount,ro /
No meu caso, não consegui remontar readonly, então ...
O comando mount
falhou. com erro mount: / is busy
.
Eu recomendo o passo drástico de simplesmente desligar a sua máquina. Sim, drástico! Mas eu não sei quanto tempo os restos do arquivo truncado estarão por perto. Eles podem ser substituídos a qualquer momento. Inicialize no LiveCD do Ubuntu.
Por um comentário aqui , eu corri telinit 1
, que caiu para o nível 1 do init. Isso só complicou coisas, então eu não recomendo fazer telinit 1
. Eu recomendo o hard power down.
tentativa de usar o ext3grep
Após esta postagem do blog e este encadeamento de e-mail , tente usar ext3grep
.
No entanto, ext3grep
falhou para mim. Eu só consegui recuperar o arquivo truncado.
tentativa de usar o sleuthkit
sleuthkit
é um conjunto de ferramentas interessante. Você provavelmente terá que instalá-lo. Novamente, isso é complicado se o arquivo truncado for o /
mount. Mais uma vez, recomendo desligar e executar um LiveCD.
Usando esta postagem no blog e esta postagem no blog , as instruções são essencialmente
- apt-get instala o sleuthkit
- stat truncated-file | grep Inode
lembre-se do número do inode (chame de INODE_NUMBER
)
- faça backup do arquivo e exclua-o:
cp -a truncated-file truncated-file.old
rm truncated-file
-
debugfs /dev/disk-device
-
stats
procure por Blocos por grupo
Isso é muito provável 32768 . (chame de BLOCKS_PER_GROUP
)
- imap para obter o bloco
imap <$INODE_NUMBER>
lembre-se do número do bloco (chame de BLOCK_NUMBER
)
- use
blkls
para copiar os blocos para um arquivo
blkls /dev/disk-device $BLOCK_NUMBER-$(echo '$BLOCK_NUMBER+$BLOCKS_PER_GROUP-1' | bc) > recovered-file
- revise e limpe manualmente o arquivo recuperado usando algum programa de edição
Mas sleuthkit
não funcionou para mim. Apenas o arquivo truncado foi recuperado.
tentativa de usar extundelete
Desta postagem no fórum .
tente usar o grep
Desta postagem , grep para alguma string conhecida no arquivo truncado. Este é o único método que funcionou para mim.
grep -a -A 1000 -F 'some known string' /dev/disk-device > recovered-file