Como faço para criar uma imagem pouco idêntica de um pendrive?

17

Eu tenho um pendrive que é ilegível por algum motivo. Eu quero fazer uma imagem para fins de armazenamento para que eu possa tentar recuperar os dados da imagem em uma data posterior.

Como eu poderia criar uma imagem um pouco idêntica de um pen drive?

Este é o erro que recebo quando uso dd :

oshirowanen@desktop:~$ sudo dd if=/dev/sdd of=/USB_image
[sudo] password for oshirowanen: 
dd: reading '/dev/sdd': Input/output error
0+0 records in
0+0 records out
0 bytes (0 B) copied, 1.00783 s, 0.0 kB/s
oshirowanen@desktop:~$ 
    
por oshirowanen 11.07.2013 / 12:38

5 respostas

38

dd it!

O uso seria algo como sudo dd if=/dev/sdb of=~/USB_image onde / dev / sdb é sua unidade usb listada por sudo fdisk -l e ~ / USB_image é o arquivo de imagem em que o cópia será feita (um caminho onde o arquivo de imagem será criado).

Para restaurar a imagem para outra unidade USB basta inverter o processo: sudo dd if=~/USB_image of=/dev/sdb irá restaurar ~ / USB_image para o dispositivo sdb . Apenas certifique-se de que a nova unidade USB seja tão grande ou maior que a original.

Você também pode montar o arquivo de imagem que acabou de criar em um caminho sem precisar restaurá-lo primeiro em outra unidade USB com mount ~/USB_image /mnt/USB_image -o loop .

    
por Bruno Pereira 11.07.2013 / 12:44
6

Use ddrescue . Ele continuará após os erros, em que dd simplesmente falhará.

Além disso, ddrescue está nos repositórios. No dia 13.04, digitei sudo apt-get install gddrescue para instalar.

Use sudo fdisk -l ou dmesg para descobrir a localização do dispositivo, por exemplo: /dev/sdb , depois execute um comando como

ddrescue /dev/sdb /home/user/desktop/bkp.img

existem muitas opções para ddrescue e talvez queira ler as man páginas. Também não sei por que seu hardware está falhando e descartando dd . Um bloco defeituoso pode fazer com que dd seja encerrado, mas também falhas de energia intermitentes. dmesg pode informá-lo mais sobre falhas de hardware que você pode estar enfrentando.

CERTIFIQUE-SE DE QUE O DISPOSITIVO NÃO ESTÁ MONTADO! quando você tenta fazer recuperação de dados, geração de imagens, etc. Isso pode causar problemas.

Há muitas coisas que podem dar errado na recuperação de dados. Poste de volta se você tiver problemas. testdisk é um bom utilitário para fazer a recuperação de dados quando você tem uma imagem.

Apenas para maior clareza, este é um disco rígido USB ou um dispositivo usb (memória de estado sólido)?

Os erros de E / S são tipicamente indicativos de problemas de hardware, e não de corrupções do sistema de arquivos.

Tente também obter a análise de dados SMART do dispositivo, se estiver disponível. Isto pode dizer-lhe coisas como se o dispositivo dele foi superaquecimento, ligado por um longo tempo, tem setores defeituosos, expostos a mais de X não. de Gs etc.

    
por j0h 11.07.2013 / 20:30
2

Você pode criar uma imagem de um dispositivo USB (ou outro dispositivo) usando dd .

Por exemplo,

dd if=<usb device> of=usb.img

Você pode adicionar mais parâmetros a dd para otimizar o comando (por exemplo, bs ).

    
por Uwe Plonus 11.07.2013 / 12:43
2

dd , como mencionado por um pôster anterior, é o caminho original a seguir. Você vai querer continuar com os erros, então você pode começar com:

dd if=<usb device> of=<new file on disk with enough space> bs=<should match your blocksize> conv=noerror,sync 

A parte importante é a última: conv=sync diz ao dd para preencher todos os blocos que poderia ler apenas parcialmente com zeros, então a imagem resultante pode ter muitos zeros, mas estruturalmente igual ao disco, menos seus erros de leitura. %código% cuidei daqueles erros de leitura, dizendo ao dd para continuar com o próximo bloco. Neste ponto, o tamanho do bloco é importante, pois se ele for maior que o necessário para ignorar o erro, os dados legíveis serão perdidos aqui. O Blocksize deve sempre ser um fator de dois - se estiver em dúvida, conv=noerror deve fazer o truque.

Então eu sugiro para:

  • armazena uma cópia não modificada dessa imagem em algum lugar seguro
  • fsck uma cópia da imagem do disco
  • monte a imagem do disco
  • verifique seus arquivos - eles podem ser lidos sem problemas agora, mas alguns podem ser faltando ou ser truncado
  • Se o dispositivo em si não puder ser lido, você pode estar sem sorte. Além disso, se o dispositivo contiver algum software proprietário, pode ser configurado para retornar erros de leitura quando acessado nos primeiros blocos.

(Citando-me parcialmente de um artigo escrito em 2010)

Se você não precisa permanecer nativo, você pode sempre tentar ferramentas que estão tentando facilitar o processo, como o ddrescue (pacote 512k ) e seu companheiro gddrescue (sourceforge ) para visualizar os erros.

    
por Tatjana Heuser 06.04.2014 / 12:51
2

Com relação à segunda parte da sua pergunta "Este é o erro que recebo quando uso o dd": posso ver algumas possibilidades.

  1. Observe a diferença no comando que você digitou versus a resposta aceita; você está perdendo um ~ na frente de /USB_image . Em outras palavras, você está tentando produzir a raiz do seu sistema de arquivos em vez de seu diretório pessoal.
  2. /dev/sdd pode não ser a unidade correta. Execute sudo fdisk -l e compare o tamanho da unidade com o tamanho conhecido do dispositivo USB. Por exemplo, eu sei que este é o meu pendrive porque é perto de 16 GB: Disk /dev/sdf: 15.8 GB, 15805186048 bytes .
por MDMower 22.11.2014 / 10:13