Loopback files on a FAT based Filesystem?

I'm trying to set up a set of loopback files on a digital music player so I can carry a QEMU virtual machine with me. The digital music player in question is the Rio Karma and the filesystem it uses is omfs. Based on what I read at the Rio Karma FS page: Linux-Karma Homepage it would appear that omfs is based on FAT. One of the things that also seems to support this is that I wasn't able to create loopback files larger than 2 gigs on the filesystem.

The other point to note is that I am coupling omfs with a fuse userspace filesystem 'lkarmafs' which allows one to mount the Karma in "Taxi" mode. This provides a location in <base mount point>/taxi/ that you can carry regular files in. I am able to create loopback files here, but I can't seem to use them as I would if they were on an ext3 or reiserfs partition. So I tried a new approach and create my files at an appropriate size on a ext3 partition. I then prepped them (fdisk/lvm/format) and made sure they stayed below the 2 gig limit. I then copied them to the taxi folder. All of this seemed to work fine.

As soon as I pointed QEMU at those files it complains that it can't read the first file passed to it. But it reads the same exact file on ext3 just fine. So I suspect there is some limitation of either lkarmafs, fuse, omfs or even FAT that prevents proper access to the files. I post this mostly because I'm wondering if any one has any suggestions regarding loopback files on non-Unix filesystems. Perhaps there is an inherent limitation in FAT that prevent loopback from working right? Maybe I created them improperly? Here is the dd command I used:

dd if=/dev/zero bs=1024 count=2097152 of=1.img

Maybe I should have used 512 for bs? Or am I just barking up the wrong tree and there are too many possible causes to really investigate?

The maximum file size of a FAT file system is 4GB, and if someone uses a signed type, it halves again to 2GB. I'm not surprised you're hitting limits.

That, and FAT filesystems aren't a good match to UNIX file access in the first place; wonky access permissions, multiple kinds of file names and wonky restrictions on file names, the division between "name" and "extension", these strange "hidden" flags, and so forth. You usually can't execute files from a FAT filesystem under UNIX, since FAT has no executable bit. It just disallows it, even when the permissions look like rwx.