Menciona en un comentario a RooTer que A) ha reducido el tamaño inicial de la partición gparted
, pero dd
aún copia toda la tarjeta, y B) que desea incluir ambas particiones en la imagen.
El problema "A" es fácil de explicar: todavía está copiando toda la tarjeta porque a eso se /dev/mmcblk0
refiere. Las particiones individuales son, por supuesto, /dev/mmcblk0p1
y /dev/mmcblk0p2
. Esta es la complicación en el problema "B", pero no puede simplemente dd
cada partición y concatenar los dos archivos juntos, debido a que la tabla de partición al principio de la /dev/mmcblk0
cual indexa el comienzo y la longitud de cada partición. Sin eso, la imagen quedará inutilizable.
Sin embargo, puede obtener la longitud de cada partición fdisk -l
y usarla para determinar algunos parámetros dd
. Por ejemplo:
> 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
Las unidades "Inicio" y "Fin" son sectores, y observe que el tamaño del sector es de 512 bytes. Para /dev/mmcblk0p2
, 26746879 (el último sector) - 122880 (el primer sector) = 26623999/2 (para 2 sectores por kB) / 1024 (kB por MB) / 1024 (MB por GB) = 12.69, que creció la partición usando gparted a 12 GB, por lo que esto parece correcto (realmente debería usar 1000 y no 1024 como divisor con almacenamiento, lo que equivale a 13.31 GB, pero sospecho que gparted y algunas otras herramientas también usan 1024).
Entonces, lo primero que desea verificar es que su segunda partición es realmente el tamaño más pequeño en el que la configuró. Luego, solo usa esos números con dd
; para mi seria:
dd if=/dev/mmcblk0 of=rpi.img bs=512 count=26746880
Tengo un sector adicional allí para evitar cualquier tipo de error por un malentendido de cómo dd
funciona. Hay una manera simple de verificar si esto funcionó:
> 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
Observe que hay una pequeña discrepancia aquí: los sectores "Inicio" y "Fin" coinciden con la tabla de partición original, ¡pero el tamaño total en las estadísticas superiores es de solo 102 MB! Esto se debe a que realmente lo utilicé count=200000
como parámetro dd
porque realmente no quería molestarme con una copia de 12 GB (observe también "total de 200000 sectores"). La razón por la que la tabla en la parte inferior no refleja esto es porque fdisk está obteniendo su información de los datos de la partición copiados literalmente al comienzo de la imagen desde el comienzo de la tarjeta SD, lo cual, como mencioné en el segundo párrafo, es vital mantener. Si hubiera copiado (correctamente) el resto, los números serían copacetic y la imagen sería viable.
Pruébalo :)