clonagem do cartão SD usando o comando dd

36

Estou tentando clonar um cartão SD que pode conter várias partições, algumas das quais o Ubuntu não pode reconhecer. Geralmente, eu quero clonar todo o volume, não apenas alguma partição. Então, eu montei o cartão SD e vi algo parecido com isso no visualizador de log:

kernel: [  262.025221]  sdc: sdc1 sdc2

[email protected]:~$ ls /dev/sdc*
/dev/sdc  /dev/sdc1  /dev/sdc2

Como quero copiar todo o disco, executo:

dd if=/dev/sdc of=sdimage.img bs=4M

Arquivo sdimage.img, 7.9 GB (7.944.011.776 bytes) é criado (o cartão SD é de 8 GB). Agora eu montei outro cartão SD e execute:

dd if=sdimage.img of=/dev/sdc bs=4M

O problema é que o segundo comando dd trava em algum estágio e nunca é bem-sucedido. Depois disso, não consigo reiniciar ou desligar o computador, e preciso apenas desligar a energia.

Esta é a abordagem correta? Talvez haja outra maneira de clonar um cartão SD?

OS: Ubuntu 12.04 (Pangolim Preciso), 32 bits.

    
por Alex F 11.12.2012 / 14:42

5 respostas

23

Você não deve usar o dd em dispositivos montados. desmonte todas as partições primeiro, então seu comando deve funcionar.

    
por ubfan1 13.12.2012 / 19:01
14

Insira o cartão SD original e verifique o nome do dispositivo (geralmente mmcblkX ou sdcX ):

sudo fdisk -l

No meu caso, o cartão SD é /dev/mmsbkl0 . Agora você tem que desmontar o dispositivo:

sudo umount /dev/mmcblk0

Agora, crie uma imagem do dispositivo:

sudo dd if=/dev/mmcblk0 of=~/sd-card-copy.img

Isso vai demorar um pouco.

Quando terminar, insira o cartão SD vazio. Se o dispositivo for diferente (USB ou outro tipo de leitor de cartão SD), verifique seu nome e certifique-se de desmontá-lo:

sudo fdisk -l
sudo umount /dev/mmcblk0

Escreva a imagem para o dispositivo:

sudo dd if=~/sd-card-copy.img of=/dev/mmcblk0

A operação de gravação é muito mais lenta do que antes.

    
por Alon Fleider 03.06.2015 / 13:24
13

Estou usando a ferramenta dd para clonar sticks usb com várias partições, aqui está o meu comando:

sudo dd if=/dev/sdb of=/dev/sdc bs=4096 conv=notrunc,noerror

notrunc - não trunca o arquivo de saída noerror - continua após erros de leitura

    
por tommyk 11.12.2012 / 16:05
9

dd é bom, mas prefiro cat /dev/sdc/ > ~/backup.iso Se você quiser colocá-lo em um cartão SD novamente, basta executar cat ~/backup.iso > /dev/sdc

    
por Vreality 11.12.2012 / 15:36
0

Aqui estão os passos que funcionaram para mim no Ubuntu para restaurar o arquivo de imagem ( ~/raspberrypi2.img no meu caso) de volta para um novo cartão SD (inspirado strongmente pela resposta de Alon acima):

  1. Insira o cartão micro SD através do leitor de cartões.
  2. Abra o aplicativo Discos.
  3. Formatação rápida de todo o cartão (não de uma partição específica).
  4. Feche os discos.
  5. Abra o terminal e execute:

    sudo fdisk -l
    

Saída relevante (que mostrou que não havia partições devido ao formato rápido de todo o cartão):

Disk /dev/sdb: 7.4 GiB, 7948206080 bytes, 15523840 sectors 
Units: sectors of 1 * 512 = 512 bytes 
Sector size (logical/physical): 512 bytes / 512 bytes 
I/O size (minimum/optimal): 512 bytes / 512 bytes 
Disklabel type: dos 
Disk identifier: 0x6957f2f2
sudo dd if=~/raspberrypi2.img of=/dev/sdb

Este passo leva alguns bons minutos (mesmo no USB3). Certifique-se de não interrompê-lo por qualquer operação que invoque a montagem (abrindo os aplicativos Arquivos ou Discos).

Obrigado pelas respostas de todos.

    
por BoazC 09.01.2016 / 20:28

Tags