Apenas use o brd e crie um dispositivo brd (ram0). Use esse dispositivo no lugar do seu drive USB. Você pode particioná-lo usando o sfdisk, usar as partições e, em seguida, usar o dd para despejar seu conteúdo no arquivo.
Não há necessidade de usar um sistema de arquivos por dispositivo brd.
Ou (embora pouco hacky) você pode usar tmpfs, criar arquivo de imagem e usá-lo como dispositivo de loop. Essa pode ser a maneira mais fácil de realizar o que você deseja. Como bônus, você tem essa imagem pronta e pode enviá-la imediatamente. Não há necessidade de dd.
# 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 atender às suas necessidades.