Puede hacerlo combinando dispositivos de bucle y mapeador de dispositivos, gracias a "todo es un archivo". Pero con una limitación:el tamaño del archivo no se puede cambiar (ya que no se pueden aumentar los dispositivos de bloque escribiendo en ellos). Entonces, si desea agregar datos, debe crear un dispositivo de bloque más grande y sobrescribir los datos ficticios agregados.
# for testing, Create 4 files
echo foo | dd of=block0 cbs=512 conv=block
echo bar | dd of=block1 cbs=512 conv=block
echo bat | dd of=block2 cbs=512 conv=block
echo baz | dd of=block3 cbs=512 conv=block
# Create a loop device for each of the 4 files
losetup /dev/loop0 block0
losetup /dev/loop1 block1
losetup /dev/loop2 block2
losetup /dev/loop3 block3
# Create a device map named "test" using those loop devices
(
echo "0 1 linear /dev/loop0 0"
echo "1 1 linear /dev/loop1 0"
echo "2 1 linear /dev/loop2 0"
echo "3 1 linear /dev/loop3 0"
) | dmsetup create test
$EDITOR /dev/mapper/test # use overwrite mode only
Para ampliar el archivo, puede crear un archivo disperso grande y usarlo como dispositivo adicional.