una telefono tarjeta reducir raspberry pasar otra memoria los instalar imagen grabar datos crear como archivos ala linux image dd

linux - telefono - instalar raspbian en sd



¿Cómo crear una imagen.IMG de un disco(tarjeta SD) sin incluir espacio libre? (3)

En Linux, podemos hacer

dd if=/dev/sdb of=bckup.img

pero si el disco es de 32 GB con solo 4 GB, el archivo de imagen de 32 GB es un desperdicio de espacio-tiempo. ¿Hay alguna forma o herramienta para crear imágenes con solo datos válidos?


Lo mejor que puedes hacer es

  1. Copia todos los archivos de todas las particiones conservando metadatos.

    mkdir -p myimage/partition1

    mkdir myimage/partition2

    sudo cp -Rrf --preserve=all /media/mount_point_partition1/* myimage/partition1/

    sudo cp -Rrf --preserve=all /media/mount_point_partition2/* myimage/partition2/

  2. Extraer el MBR

    sudo dd if=/dev/sdX of=myimage/mbr.img bs=446 count=1

    Reemplace /dev/sdX con el dispositivo correspondiente.

  3. Particione el disco de destino en particiones con tamaños mayores que los datos copiados y debe tener el mismo formato y las mismas gparted usando gparted . Google cómo particionar un disco.

  4. 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 /media .

  5. Copie los datos previamente copiados a las particiones de destino usando los siguientes comandos

    sudo cp -Rrf --preserve=all myimage/partition1/* /media/mount_point_partition1/ sudo cp -Rrf --preserve=all myimage/partition2/* /media/mount_point_partition2/

  6. Copia de nuevo el MBR

    sudo dd if=myimage/mbr.img of=/dev/sdX bs=446 count=1

Ahora njoy tu nuevo disco!


Una forma bastante buena y sencilla 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 quede comprimido a casi nada.

Usaría esto para restaurar tal imagen de nuevo:

# cat backup.img.gz | gunzip | dd of=/dev/sdb

Una nota: si tenía una gran cantidad de 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 limpiar el espacio libre creando y borrando inmediatamente archivos grandes que contengan ceros:

# cd /media/flashdrive # dd if=/dev/zero of=bigfile bs=1M # let it run and quit by disk full error # rm bigfile


Usando los parámetros bs y count 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, puedes obtener una buena idea de df :

df -H --total /

Sustituya / con una lista separada por espacios de todos los puntos de montaje relacionados con las particiones de disco.

Una forma más precisa podría ser usar fdisk o su editor de particiones preferido y ocuparse de 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

El espacio total utilizado en bytes = sector final del tamaño del sector X de la última partición (aquí es 3667967 x 512).

Total de espacio utilizado en GB = total de espacio utilizado en bytes / 1024 3 (aquí es 1.749023 GB).

Si decide, por ejemplo, que su imagen debe ser exactamente de 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 olvide sudo los comandos anteriores si su cuenta 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 1.75 GB, entonces una imagen de 2 GB es lo suficientemente cerca para mí. Esto elimina los otros 6 GB (o 30 GB o lo que sea que tenga el dispositivo) de espacio no utilizado que de lo contrario estaría en la imagen.

He visto consejos en muchos lugares que no deberían realizarse dd en una partición montada y lo seguí porque parece intuitivamente correcto; Parece más bien como intentar dibujarse a sí mismo haciendo un boceto en un espejo con el boceto que está haciendo también visible en el boceto. Es un poco vago.