Cómo crear una imagen ".bin" de memoria USB en Linux sin disco físico

1

Tengo algunos archivos en Linux, que tengo que copiar en varias tarjetas SD en Windows Periódicamente (no de arranque, pero con permisos de archivos, sistema de archivos ext3 ). Ahora el procedimiento es: copio archivos en una unidad flash bajo Linux, luego creo un .bin Imagen de esta unidad y clone este .bin a otras unidades USB bajo Windows. Los archivos a veces cambian, así que necesito crear .bin archivo de nuevo. La idea es crear. .bin Archivos sin utilizar realmente la unidad física.

¿Existe una solución para crear imágenes de unidad USB virtualmente? ¿O hay una herramienta para grabar unidades flash USB ext3 desde tag.bz2 archivo bajo Windows?

Heavy
fuente

Respuestas:

1

La solución obvia es montar la imagen directamente en Linux y hacer los cambios, pero hay un pequeño problema. Estos medios están particionados de forma similar a un disco duro. La solución es montar la partición correcta desde la imagen.

Compruebe que la imagen está particionada:

$ file -k OpenELEC-RPi.arm-4.95.1.img
OpenELEC-RPi.arm-4.95.1.img: x86 boot sector; partition 1: ID=0xc, active, starthead 32, startsector 2048, 262145 sectors; partition 2: ID=0x83, starthead 146, startsector 266240, 65537 sectors

Trabajando con la imagen

Asigne las particiones de la imagen a los dispositivos de bucle:

$ sudo kpartx -av OpenELEC-RPi.arm-4.95.1.img
add map loop0p1 (252:3): 0 262145 linear /dev/loop0 2048
add map loop0p2 (252:4): 0 65537 linear /dev/loop0 266240

En Ubuntu kpartx no está instalado por defecto Hacer sudo apt-get install kpartx.

Montar la partición:

$ sudo mount /dev/mapper/loop0p1 /mnt/tmp1

Ahora haz tus cambios en el /mnt/tmp1 directorio.

Desmonte la partición y elimine la asignación:

$ sudo umount /dev/mapper/loop0p1
$ sudo kpartx -dv OpenELEC-RPi.arm-4.95.1.img
del devmap : loop0p2
del devmap : loop0p1
loop deleted : /dev/loop0

Otras opciones

Si kpartx no está disponible, puede determinar el desplazamiento de partición utilizando, por ejemplo, fdisk (También funciona en imágenes para que pueda crear la imagen sin tener un disco físico) y mapearlas usando losetup o mount -o loop,offset=x o incluso la nueva versión de losetup (de util-linux 2.21) puede mapear las particiones directamente usando la opción --partscan.

Hay descripciones en otras preguntas:

pabouk
fuente