I've been working on a full-time project to develop content for Linux LiveUSB keys.
We've seen dramatic differences between keys. The same image written to 2 different keys can produce hugely different results. My 16GB Sandisk key from Best Buy works without any problems. The cheap no-name key we acquired from a supplier has intermittent failures.
The problem appears to be with the controller in the key and not the flash memory. We were originally concerned that the wear-leveling was causing "fixed files" to migrate data between pages when writing new files to other areas of the filesystem.
So, we used the badblocks utility to write patterns to the key to exercise the flash memory and give the controller a chance to detect any bad pages. Then after we wrote the LiveUSB image we verified it against the original, and it passed.
However, after running badblocks, when doing lots of random, continuous writes we frequently see invalid data returning from the key. We assume that this is a race condition in the USB-to-flash-memory controller in the key.
The end result is that you get what you pay for. You may get away with using a cheap key, but you shouldn't trust it for all situations. A more expensive key will likely have better tested hardware that is less likely to fail when you need it most.
We've seen dramatic differences between keys. The same image written to 2 different keys can produce hugely different results. My 16GB Sandisk key from Best Buy works without any problems. The cheap no-name key we acquired from a supplier has intermittent failures.
The problem appears to be with the controller in the key and not the flash memory. We were originally concerned that the wear-leveling was causing "fixed files" to migrate data between pages when writing new files to other areas of the filesystem.
So, we used the badblocks utility to write patterns to the key to exercise the flash memory and give the controller a chance to detect any bad pages. Then after we wrote the LiveUSB image we verified it against the original, and it passed.
However, after running badblocks, when doing lots of random, continuous writes we frequently see invalid data returning from the key. We assume that this is a race condition in the USB-to-flash-memory controller in the key.
The end result is that you get what you pay for. You may get away with using a cheap key, but you shouldn't trust it for all situations. A more expensive key will likely have better tested hardware that is less likely to fail when you need it most.