Você não deve usar o dd em dispositivos montados. desmonte todas as partições primeiro, então seu comando deve funcionar.
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
alex@u120432:~$ 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.
Você não deve usar o dd em dispositivos montados. desmonte todas as partições primeiro, então seu comando deve funcionar.
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.
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
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
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):
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.