76 votes

Clonage de carte SD à l'aide de la commande dd

J'essaie de cloner une carte SD qui peut contenir un certain nombre de partitions, dont certaines ne sont pas reconnues par Ubuntu. En général, je veux cloner le volume entier, pas seulement une partition. Je monte donc la carte SD et je vois quelque chose comme ceci dans le visualisateur de journaux :

kernel: [  262.025221]  sdc: sdc1 sdc2

alex@u120432:~$ ls /dev/sdc*
/dev/sdc  /dev/sdc1  /dev/sdc2

Comme je veux copier le disque entier, j'exécute :

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

Le fichier sdimage.img, 7,9 Go (7 944 011 776 octets) est créé (la carte SD fait 8 Go). Maintenant, je monte une autre carte SD et j'exécute :

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

Le problème est que la deuxième commande dd se bloque à un certain stade, et n'aboutit jamais. Après cela, je ne peux pas redémarrer ou éteindre l'ordinateur, et j'ai juste besoin d'éteindre l'ordinateur.

Est-ce la bonne approche ? Peut-être existe-t-il un autre moyen de cloner une carte SD ?

OS : Ubuntu 12.04 (Pangolin précis), 32 bits.

65voto

Alon Fleider Points 651

Insérez la carte SD originale et vérifiez le nom de l'appareil (généralement mmcblkX o sdcX ):

sudo fdisk -l

Vous pourriez voir :

Device         Boot   Start      End  Sectors  Size Id Type
/dev/mmcblk0p1 *       2048  2099199  2097152    1G  c W95 FAT32 (LBA)
/dev/mmcblk0p2      2099200 31116287 29017088 13.9G 83 Linux

Dans mon cas, la carte SD est /dev/mmcblk0 (le *p1 y *p2 sont les partitions).

Maintenant, vous devez démonter le périphérique :

sudo umount /dev/mmcblk0

Maintenant, nous allons créer une image de l'appareil :

sudo dd if=/dev/mmcblk0 of=~/sd-card-copy.img bs=1M status=progress

Cela va prendre un certain temps.

Une fois que c'est terminé, insérez la carte SD vide. Si le périphérique est différent (USB ou autre type de lecteur de carte SD) vérifiez son nom et assurez-vous de le démonter :

sudo fdisk -l
sudo umount /dev/mmcblk0

Écrire l'image sur le périphérique :

sudo dd if=~/sd-card-copy.img of=/dev/mmcblk0 bs=1M status=progress

L'opération d'écriture est beaucoup plus lente qu'auparavant.

41voto

ubfan1 Points 14936

Vous ne devriez pas utiliser dd sur des périphériques montés. Démontez d'abord toutes les partitions, puis votre commande devrait fonctionner.

16voto

Alexandre Points 600

J'utilise l'outil dd pour cloner des clés usb avec plusieurs partitions, voici ma commande :

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

notrunc - ne pas tronquer le fichier de sortie
noerror - continuer après des erreurs de lecture

11voto

Vreality Points 1089

Dd est bien, mais je préfère cat /dev/sdc/ > ~/backup.iso Si vous voulez le mettre sur une carte SD à nouveau, il suffit de lancer cat ~/backup.iso > /dev/sdc

1voto

Andre Cotelo Points 11

Voici les étapes qui ont fonctionné pour moi sur Ubuntu pour rétablir le fichier image ( ~/raspberrypi2.img dans mon cas) vers une nouvelle carte SD (fortement inspiré par la réponse d'Alon ci-dessus) :

  1. Insérez la carte micro SD via le lecteur de carte.
  2. Ouvrez l'application Disques.
  3. Formatez rapidement la carte entière (pas une partition spécifique).
  4. Fermez les disques.
  5. Ouvrez le terminal et exécutez :

    sudo fdisk -l

Sortie pertinente (qui montre qu'il n'y a pas de partitions en raison du formatage rapide de toute la carte) :

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

Cette étape prend quelques bonnes minutes (même sur USB3). Veillez à ne pas l'interrompre par une opération qui invoquerait le montage. (en ouvrant les applications Fichiers ou Disques).

Merci pour les réponses de chacun.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X