Vous mentionnez dans un commentaire à RooTer que A) vous avez réduit la taille de partition initiale avec gparted
, mais dd
copie toujours la carte entière, et B) que vous souhaitez inclure les deux partitions dans l'image.
Le problème "A" est facile à expliquer: vous copiez toujours la carte entière parce que c'est ce /dev/mmcblk0
à quoi il fait référence. Les partitions individuelles sont bien sûr /dev/mmcblk0p1
et /dev/mmcblk0p2
. Il s'agit de la complication du problème "B", mais vous ne pouvez pas simplement dd
chaque partition et concaténer les deux fichiers ensemble, en raison de la table de partition au début /dev/mmcblk0
qui indexe le début et la longueur de chaque partition. Sans cela, l'image sera inutilisable.
Cependant, vous pouvez obtenir la longueur de chaque partition fdisk -l
et l'utiliser pour déterminer certains paramètres pour dd
. Par exemple:
> fdisk -l /dev/mmcblk0
Disk /dev/mmcblk0: 16.1 GB, 16138633216 bytes
4 heads, 16 sectors/track, 492512 cylinders, total 31520768 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
Disk identifier: 0x00017b69
Device Boot Start End Blocks Id System
/dev/mmcblk0p1 8192 122879 57344 c W95 FAT32 (LBA)
/dev/mmcblk0p2 122880 26746879 13312000 83 Linux
Les unités "Début" et "Fin" sont des secteurs, et notez que la taille du secteur est donnée, 512 octets. Pour /dev/mmcblk0p2
, 26746879 (le dernier secteur) - 122880 (le premier secteur) = 26623999/2 (pour 2 secteurs par Ko) / 1024 (Ko par Mo) / 1024 (Mo par Go) = 12,69, dont j'ai augmenté la partition en utilisant gparted à 12 Go, donc cela semble correct (vraiment, je devrais utiliser 1000 et non 1024 comme diviseur avec stockage, ce qui équivaut à 13,31 Go, mais je soupçonne gparted et certains autres outils utilisent également 1024).
Donc, la première chose que vous voulez vérifier est que votre deuxième partition est vraiment la taille la plus petite à laquelle vous la définissez. Ensuite, utilisez simplement ces chiffres avec dd
; pour moi ce serait:
dd if=/dev/mmcblk0 of=rpi.img bs=512 count=26746880
J'ai un secteur supplémentaire là-bas pour éviter toute sorte de coupure par un malentendu sur le dd
fonctionnement. Il existe un moyen simple de vérifier si cela a fonctionné:
> fdisk -l rpi.img
Disk rpi.img: 102 MB, 102400000 bytes
255 heads, 63 sectors/track, 12 cylinders, total 200000 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
Disk identifier: 0x00017b69
Device Boot Start End Blocks Id System
rpi.img1 8192 122879 57344 c W95 FAT32 (LBA)
rpi.img2 122880 26746879 13312000 83 Linux
Notez qu'il y a un peu de différence ici: les secteurs "Début" et "Fin" correspondent à la table de partition d'origine, mais la taille totale dans les statistiques en haut n'est que de 102 Mo! C'est parce que je l'ai utilisé count=200000
comme paramètre dd
parce que je ne voulais pas vraiment me soucier d'une copie de 12 Go (notez également "200000 secteurs au total"). La raison pour laquelle le tableau en bas ne reflète pas cela est que fdisk obtient ses informations des données de partition copiées textuellement au début de l'image depuis le début de la carte SD, ce qui, comme je l'ai mentionné dans le deuxième paragraphe, est vital Maintenir. Si j'avais (correctement) copié le reste, les chiffres seraient copacétiques et l'image serait viable.
Essayez ça. :)