Tenho vários discos rígidos antigos (alguns IDE, a maioria SATA). Alguns anos atrás eu os liguei e tentei restaurar todos os arquivos através de um programa de recuperação, e consegui alguns arquivos. Não estou convencido de ter feito um bom trabalho, então agora gostaria de tentar novamente.
Minha suposição é que uma abordagem setor por setor seria melhor, já que isso deve capturar todos os dados e então posso tentar quantas vezes quiser recuperar quaisquer arquivos que possam permanecer na imagem. Estou ciente de que tentar minha própria recuperação reduz a chance de uma recuperação profissional bem-sucedida, mas na verdade só espero recuperar alguns arquivos dos quais me lembro vagamente da minha infância, por isso não é tão importante.
Qual é a maneira mais segura de criar algum tipo de imagem setor por setor das minhas unidades antigas, considerando que pode haver muitos setores com falha?
Estou familiarizado com o Linux e tenho o Mint com inicialização dupla no meu laptop, mas nunca usei o DD e não tenho certeza se deveria aprender a usá-lo ou encontrar outra ferramenta.
Em geral, existem pelo menos duas estratégias:
Copie todo o disco com uma ferramenta designada para lidar com erros de leitura. A ferramenta padrão é GNU
ddrescue
, já a usei muitas vezes para bloquear imagens de dispositivos.GNU
ddrescue
não se preocupa com tabelas de partições ou sistemas de arquivos, seu trabalho é ler o máximo possível da unidade, enquanto tenta resgatar primeiro as partes boas em caso de erros de leitura.(Ouvi coisas boas sobre HDDSuperClone , mas nunca o usei (ainda).)
Na melhor das hipóteses, você obterá uma imagem perfeita da unidade, incluindo quaisquer restos de sistemas de arquivos ou arquivos excluídos anteriormente; portanto, qualquer tentativa de recuperar ou recuperar esses arquivos funcionará da mesma forma ou em um grau superior, como se você tivesse usado a unidade original. Possivelmente "em um grau mais alto", porque a suposição é que a unidade original provavelmente falhará sob tensão, mas uma cópia/imagem, uma vez criada e armazenada adequadamente em unidades saudáveis, é firme e pode ser trabalhada sem arriscar nada.
Na pior das hipóteses, a única tentativa de criar uma imagem completa será a tensão que matará a unidade de origem. Para mitigar esse risco, existe a outra estratégia.
Copie o sistema de arquivos desejado usando uma ferramenta que o compreenda e ignore deliberadamente as partes da unidade que o sistema de arquivos não usa. A idéia é que não faz sentido tentar ler setores não usados atualmente pelo sistema de arquivos, porque mesmo uma leitura bem-sucedida não resultará em nada, embora ainda seja um esforço que pode matar o disco antes que toda a operação seja concluída.
Para que isso funcione, as estruturas básicas do sistema de arquivos devem estar intactas. Você precisa de uma ferramenta específica para o tipo de sistema de arquivos. Para NTFS, consulte esta pergunta: Como posso descobrir quais setores são usados por arquivos em NTFS?
Esta estratégia ignora deliberadamente setores não utilizados atualmente pelo sistema de arquivos. Em geral, a maioria dos dados que você poderia recuperar existe nesses setores, esses dados serão perdidos. A estratégia visa maximizar as chances de copiar o estado atual do sistema de arquivos, mas nada mais.
Você mencionou uma tentativa de "restaurar todos os arquivos por meio de um programa de recuperação". Você quer tentar novamente. Se sim, então a primeira estratégia é a certa para você.
Notas:
Com a primeira estratégia você pode copiar um dispositivo de bloco inteiro (por exemplo,
/dev/sdc
no Linux). Presumo que haja uma tabela de partições. Se a tabela de partições estiver intacta, copiar para outro dispositivo de bloco (por exemplo,/dev/sde
) irá "criar" as partições lá (o kernel fornecerá/dev/sde1
etc. depois departprobe
) e trabalhar com elas será bastante simples. Copiar um dispositivo de bloco particionado inteiro para um arquivo normal é um tanto problemático posteriormente, porque você precisa saber como acessar as "partições" existentes dentro do arquivo regular (caso queira fazer isso, no Linux as ferramentas são ,losetup --partscan
,partx
)kpartx
. Por esse motivo, se você deseja copiar para arquivos normais, geralmente é melhor copiar cada partição para um arquivo separado.Com a segunda estratégia você copia um sistema de arquivos que quase sempre existe dentro de uma partição (por exemplo,
/dev/sdc1
no Linux).Pessoalmente prefiro copiar arquivos normais em um Btrfs. Primeiro eu torno a cópia imutável (
chattr +i
) só para garantir. Em seguida, crio uma cópia relinkada da cópia (cp --reflink=always
). Aí eu trabalho com essa cópia "secundária", então até ferramentas que precisam modificar a imagem podem funcionar, mas ainda tenho a cópia imutável para recomeçar caso algo dê errado. Tal cuidado é possível sem reflinks, por meio de cópia real, em qualquer sistema de arquivos; No entanto, a religação economiza muito tempo e espaço em disco.Ainda assim, o Windows e as ferramentas (de recuperação) do Windows podem exigir que a cópia exista em um dispositivo de bloco. Não conheço o Windows o suficiente para dizer com que facilidade hoje em dia ele pode fingir que um arquivo normal é um dispositivo de bloco (como o Linux pode fazer com
losetup
). Uma maneira genérica de usar uma cópia de disco em arquivo regular com alguns sistemas operacionais (por exemplo, Windows) é conectar a cópia como "HDD" a uma máquina virtual executando o sistema operacional.Se houver Btrfs na unidade clonada, não tente montar a cópia enquanto o original ainda estiver conectado (nem o contrário). A razão é que eles compartilharão o UUID que identifica o sistema de arquivos e, por design, serão interpretados como partes de um único sistema de arquivos, e não de dois sistemas distintos. Veja Como copiar um sistema de arquivos btrfs para algumas idéias úteis.