Ok, acontece que funciona com o dm-crypt principalmente como eu quero:
dd if=/dev/zero of=/media/crypted-backup.bin bs=512 count='blockdev --getsize /dev/hdb2'
losetup /dev/loop0 /media/crypted-backup.bin
cryptsetup -c aes -h ripemd160 -y create cryptvol1 /dev/loop0
dd if=/dev/hdb2 of=/dev/mapper/cryptvol1 bs=4k
Isso não é exatamente uma imagem existente, mas como eu criaria a imagem de qualquer maneira, isso resolve o problema para mim.