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?