La guía paso a paso o código que verás en este post es la solución más rápida y efectiva que encontramos a tus dudas o dilema.
Solución:
Una manera bastante buena y simple de lidiar con esto es simplemente canalizarlo a través de gzip, algo como esto:
# dd if=/dev/sdb | gzip > backup.img.gz
De esta manera, su imagen se comprimirá y lo más probable es que el espacio no utilizado se reduzca a casi nada.
Usaría esto para restaurar dicha imagen:
# cat backup.img.gz | gunzip | dd of=/dev/sdb
Una nota: si tenía muchos archivos que se eliminaron recientemente, el tamaño de la imagen puede ser aún grande (la eliminación del archivo no necesariamente pone a cero los sectores subyacentes). Puede borrar el espacio libre creando y eliminando inmediatamente un archivo grande que contenga ceros:
# cd /media/flashdrive
# dd if=/dev/zero of=bigfile bs=1M # let it run and quit by disk full error
# rm bigfile
Lo mejor que puedes hacer es
-
Copie todos los archivos de todas las particiones conservando los metadatos
mkdir -p myimage/partition1
mkdir myimage/partition2
sudo cp -rf --preserve=all /media/mount_point_partition1/* myimage/partition1/
sudo cp -rf --preserve=all /media/mount_point_partition2/* myimage/partition2/
-
Extraer el MBR
sudo dd if=/dev/sdX of=myimage/mbr.img bs=446 count=1
reemplazar
/dev/sdX
con el dispositivo correspondiente. -
Particione el disco de destino en particiones con tamaños mayores que los datos copiados y debe tener el mismo formato y las mismas banderas usando
gparted
. Google cómo particionar un disco. -
Monte el disco recién formateado y particionado. En la mayoría de las computadoras, solo necesita conectar el disco y puede encontrar las particiones montadas en
/media
carpeta. -
Copie los datos copiados previamente a las particiones de destino usando los siguientes comandos
sudo cp -rf --preserve=all myimage/partition1/* /media/mount_point_partition1/
sudo cp -rf --preserve=all myimage/partition2/* /media/mount_point_partition2/
-
Copie de nuevo el MBR
sudo dd if=myimage/mbr.img of=/dev/sdX bs=446 count=1
¡Ahora disfruta de tu nuevo disco!
Utilizando el bs y contar parámetros de dd
puede limitar el tamaño de la imagen, como se ve en el paso 2 de la respuesta 1665017.
Es posible que ya sepa qué tamaño de imagen desea crear. Si no, puede obtener una buena idea de df
:
df -H --total /
Sustituir /
con una lista separada por espacios de todos los puntos de montaje relacionados con las particiones del disco.
Una forma más precisa podría ser usar fdisk
o su editor de particiones preferido y póngase a trabajar con 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 de la última partición X tamaño del sector (aquí es 3667967 x 512).
Espacio total utilizado en GB = espacio total utilizado en bytes / 10243 (aquí son 1,749023 GB).
Si decide, por ejemplo, que su imagen debe tener exactamente 2 GB, el siguiente comando lo hará:
dd if=/dev/mmcblk0 of=/path/to/pi_updated.img bs=1M count=2048
La imagen resultante también incluirá el ruido aleatorio más allá de la mayor extensión de la última partición.
no te olvides de sudo
los comandos anteriores si su cuenta aún no tiene suficientes privilegios.
Para mis propósitos, no necesito una imagen que esté perfectamente recortada hasta el último bit de datos, por lo que cuando el tamaño real es de 1,75 GB, una imagen de 2 GB es suficiente para mí. Esto elimina los otros 6 GB (o 30 GB o lo que el dispositivo tenga disponible) de espacio no utilizado que, de otro modo, estaría en la imagen.
He visto consejos en muchos lugares que dd
deberían no realizarse en una partición montada y lo seguí porque parece intuitivamente correcto; parece más bien como tratar de dibujarte a ti mismo haciendo un boceto en un espejo con el boceto que estás haciendo también visible en el boceto. Es un poco incompleto.
valoraciones y comentarios
Al final de la post puedes encontrar las anotaciones de otros usuarios, tú también tienes la libertad de mostrar el tuyo si lo deseas.