Last night I wanted to watch a media file that I had on my ext4 Ubuntu Karmic disk partition. My media PC is running Ubuntu Hardy (8.04) which can't read ext4. Even if it could, I haven't yet bothered to set up network sharing from my Karmic installation. So I figured I would just use the old fashioned sneaker net to transfer the file.
I grabbed a relatively new 2GB flash drive out of my desk copied the 351 MB file to it. I took that flash drive out to the living room to watch it on my media PC that's connected to the TV. When I launched the file into Totem I got no video and a scrambled, jittery audio. Since I recently rebuilt this machine with a fresh Hardy install, (Karmic failed miserably during installation, but that's another story), I figured I must have missed installing a video codec somewhere. I installed several additional codecs, VLC media player, etc.; nothing worked.
I finally returned to my desktop PC and was unable to play the file from the flash drive as well. I re-copied the file to the drive thinking it must have become corrupted during the transfer. Still no luck. I tried a different flash drive. Eureka! So what was different?
It turns out that my new 2GB flash drive had been pre-formatted as a FAT16 file system. Why FAT16? I don't know, but I suspect it has to do with Microsoft's pursuit of licensing fees for FAT32 technology. The flash drive manufacturer figured FAT16 was OK since 2GB partitions can still be addressed with FAT16. M$ doesn't seem interested in pursuing licensing fees for FAT16, so they figure they should use it instead of FAT32 wherever possible. After reformatting the drive to FAT32, everything worked fine.
My advice: as soon as you get a new flash drive or card, reformat it to FAT32, NTFS, ext2, or ext3. (ext2 and ext3 will work fine if you will only be using your flash drive on Linux computers or Windows machines with ext2 drivers installed.)