Recuperando arquivos - método
II
Vamos agora descrever a segunda maneira de recuperar os
dados. Essa é a mais recomendada e eficiente. O maior
benefício desse metodo é que você consegue
recuperar arquivos com mais que 12 blocos.
Quando se trata de arquivos grandes, esse metodo é o
único eficiente. Sugiro que faça uma imagem do seu
device de disco em outra partição, para que se
houver algum problema, você não perder todos os
dados. Para isso:
# cp /dev/hda5 /root/working
#mount -t ext2 -o loop /root/working /mnt
Isso garante que você tenha um backup completo da sua
partição, caso destrua completamente seu filesystem
e possa voltar-lo.
Feito isso, você deve estar em dúvida para a
situação de havendo apenas uma particação
no seu disco, e ela no mode read-only, como se poderia
recuperar o arquivo apagado? Se você possui várias
partições, esse problema está solucionado. Mas
se você possui apenas uma partição root e
não tem nem partições MS-DOS para usar, voce
vai precisar criar um ramdisk. Para usar ramdisk você
deve seguir os passos:
# dd if=/dev/zero of=/dev/ram0 bs=1k count=2048
#mke2fs -v -m 0 /dev/ram0 2048
#mount -t ext2 /dev/ram0 /mnt
Isso vai criar um ramdisk de 2MB e montá-lo no
diretório /mnt.
Não desmonte esse ramdisk até que todo
conteúdo dele seja copiado para uma unidade validade
(não volátil). Você pode perder todo o seu
trabalho.
Caso tenha alguma unidade ZIP, essa é uma boa
escolha, não precisando usar ramdisk.
O nosso próximo passo é perguntar para o
filesystem quais os inodes que foram recentemente liberados
(apagados). Para isso deve-se utilizar o programa chamado
'debugfs'. Inicie o programa seguido da partição
que voce perdeu os arquivos.
# debugfs /dev/hda5
Se você deseja modificar os inodes diretamente, use a
opção '-w' para possibilitar acesso de escrita.
# debugfs -w /dev/hda5
O comando para listar os últimos inodes apagados
é:
debugfs: lsdel
Isso pode levar alguns segundos (ou minutos), e voce vai
sentir que seu HD está em super atividade. Voce vai
receber uma lista enorme. Deve ficar claro que voce precisa
gravar isso em algum arquivo para poder analisar, para
isso:
debugfs: quit # echo lsdel | debugfs /dev/hda5 >
path/para/lsdel.out
lsdel.out deve estar em uma partição com direito
de escrita, já que a /dev/hda5 está read-only.
Agora vem a parte mágica do trabalho, você deve
pegar essa lista e analisar com calma, e anotar os inodes
baseados exclusivamente nas informações que lhe
são possíveis: hora que o inode foi apagado, o
tamanho, o tipo, e números que indicam permissões e
owner do inode. Se você tiver apagado esse arquivo a
pouco tempo, não vai haver grande dificuldade.