web-dev-qa-db-fra.com

Puis-je utiliser DD pour cloner une carte SD plus grande sur une carte SD plus petite si les partitions réelles s'adapteront?

J'ai une carte SD de 16 Go qui a quelques partitions à ce sujet (c'est en fait la carte pour un PI de framboise). J'ai plusieurs autres cartes de 4 Go que je veux cloner la carte principale. Les 3 partitions sur la carte principale sont:

  • Partition de démarrage RASP, FAT, 60MB
  • Partition Linux, ext2, 1 Go
  • Partition de "stockage" supplémentaire, graisse, 1 Go

Si j'utilise dd pour créer une image de la carte via:

dd if=/dev/sdb of=~/sd-card.bin

ensuite, le .bin résultant est de 16 Go de taille. Y a-t-il un moyen d'utiliser dd pour copier ce qui est réellement utilisé, c'est-à-dire <4GB afin que je puisse alors dd ceci sur une nouvelle carte de 4 Go? Ou y a-t-il une meilleure solution que je devrais utiliser?

9
Charlie Schliesser

Je suppose que vous utilisez un ordinateur PC Linux ou Mac pour effectuer la copie, pas la framboise PI elle-même. Vous aurez probablement besoin d'ajouter une taille de bloc.

J'ai vu un et quatre mégots utilisés pour les disques PI de framboise en spécifiant BS = 1M ou BS = 4m. Je pense que la taille de bloc est plus importante lors de la rédaction du disque lorsque des transferts importants sont plus rapides que les plus petits. Cela ne définit pas la taille du bloc pour le disque, il effets simplement la taille des transferts DD utilise. Une des raisons pour définir une grande taille de bloc est la nécessité d'effacer le flash avant de l'écrire. Ceci est fait automatiquement mais plus rapide pour les transferts plus grands que la taille d'effacement minimale.

Vous pouvez limiter la quantité totale de données copiée par DD à l'aide de "comptage". "Compte" est en unités de blocs. Si la fin de la dernière partition sur le disque source est avant la taille de la destination, vous pouvez faire ce que vous voulez.

Quelque chose comme dd if=/dev/sdb of=~/sd-card.bin bs=1M count=4000 créera une image de 4000mbs de taille.

Voir http://fr.wikipedia.org/wiki/dd_ (UNIX) et http://elinux.org/rpi_easy_sd_card_setup Pour plus d'informations. Je ne sais pas comment trouver la fin de la dernière partition ou la taille totale des cartes. Cependant, si vous avez formaté les disques, vous saurez probablement comment faire cela.

9
William J Bagshaw