Ampliando la respuesta de William , uno podría calcular el final de la última partición usando fdisk
y una calculadora:
$ fdisk -l /dev/mmcblk0
Disk /dev/mmcblk0: 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: 0x00057540
Device Boot Start End Sectors Size Id Type
/dev/mmcblk0p1 2048 186367 184320 90M c W95 FAT32 (LBA)
/dev/mmcblk0p2 186368 3667967 3481600 1.7G 5 Extended
/dev/mmcblk0p5 188416 3667967 3479552 1.7G 83 Linux
Espacio total utilizado en bytes = sector final del tamaño de sector de la última partición X (aquí es 3667967 x 512).
Espacio total utilizado en GB = espacio total utilizado en bytes / 1024 3 (aquí es 1.749023 GB).
Por lo general, no es vital crear una imagen que se reduzca hasta el último bit de datos útil, por lo que en el ejemplo anterior crearía una imagen de 2 GB utilizando el método descrito por William en la misma respuesta anterior :
dd if=/dev/mmcblk0 of=/path/to/pi_updated.img bs=1M count=2048
Al final de la imagen, se incluirá una pequeña porción del guff inútil después de sus últimos datos útiles, pero en principio no es diferente del guff inútil que se sobrescribirá cuando vuelva a escribir la imagen en sus medios.
Este método me ha funcionado en una docena de clones. Si hay algún defecto fatal en este método, aún no han aparecido.
dd
una cantidad de otras tarjetas. Aún así, me gustaría saber si es posible resolver el problema inicial.