Comprende el código correctamente previamente a usarlo a tu proyecto y si ttienes algo que aportar puedes compartirlo con nosotros.
Solución:
Simplemente use brd y cree un dispositivo brd (ram0). Use ese dispositivo en lugar de su unidad USB. Puede particionarlo usando sfdisk, usar las particiones y luego usar dd para volcar su contenido en un archivo.
No es necesario utilizar un sistema de archivos por dispositivo brd.
O (aunque un poco complicado) puede usar tmpfs, crear un archivo de imagen y usarlo como dispositivo de bucle. Esa podría ser la forma más fácil de lograr lo que quieres. Como beneficio adicional, tiene esa imagen lista y puede cargarla de inmediato. No es necesario agregar.
# Create mountpoint for tmpfs
mkdir /tmp/tmpfs
# Mount tmpfs there
mount -t tmpfs none /tmp/tmpfs
# Create empty file of 600MB
# (it creates 599MB hole, so it does not
# consume more memory than needed)
dd if=/dev/zero of=/tmp/tmpfs/img.bin bs=1M seek=599 count=1
# Partition the image file
cfdisk /tmp/tmpfs/img.bin
# Create loop block device of it (-P makes kernel look for partitions)
losetup -P /dev/loop0 /tmp/tmpfs/img.bin
# Create filesystems
mkfs.vfat /dev/loop0p1
mkfs.ext4 /dev/loop0p2
# Now it's your turn:
# mount loop0p1 and loop0p2 and copy whatever you want and unmount it
# detach the loop device
losetup -d /dev/loop0
# May i present you with your image ...
ls -al /tmp/tmpfs/img.bin
Modifique para satisfacer sus necesidades.
Si conservas algún reparo y disposición de limar nuestro sección eres capaz de realizar un comentario y con mucho placer lo interpretaremos.