A proč by podle Vás měly pro flash paměti platit nějak zásadně jiná pravidla, než pro jakoukoli jinou storage? Zvlášť s přihlédnutím k dnešním obvyklým kapacitám mi nepřijde nic zvráceného např. na tom, mít na "flashce" bootovací oddíl s live distribucí "aby byla po ruce", FAT oddíl pro přenášení dat z Win, některý moderní flash FS na běžné použití nebo malý bootovací oddílek s klíči k šifrovanému rootu stroje...Když byste (klidně před lety s 2 GB diskem) na stanici měl všechno na jednom oddíle, koukalo by se spíš na Vás jako na blázna...
Live distribuce na flashkách nemají problém s bootováním z VFAT a kvalitnější flashky v sobě mají řadič, který často prodlužuje životnost mnohem lépe než specializovaný FS, i když je na té flashce něco tak mizerného jako VFAT.
Rozdělení disku počítače se dělá kvůli bezpečnosti a spolehlivosti systému. Když si rozdělím flashku, spolehlivost se tím zvýší minimálně (pokud se rovnou nesníží kvůli omezenému počtu přepisů) a jediné možné zabezpečení dat na flashce je pomocí šifrování.
VFAT je sice dost děsný FS (nakonec byl určený pro ukládání souborů na 8-bit PC, bez mutlitaskingu, na 160kB diskety), ale velmi jednoduše se implementuje, a umí ho úplně každý. A vypadá to, že následovníka exFAT také čeká dlouhý život.
I bad block management je součástí zřejmě všech USB flash pamětí. Zrovna dnes jsem měl možnost si to ověřit na 256MB flash, která ležela dlouho v šuplíku: dd if=/dev/zero of=/dev/sdb chybu opravilo.
Je zcela běžné, že NAND flash čipy obsahují množství chyb již z výroby. Pokud má výrobce umožnit přeformátování flash paměti bez nutnosti pokaždé volat badblocks, musí bad block management zařadit.
Výše zmíněný dokument popisuje jen část komplexity problému. Většina NAND flash má odlišnou velikost pro minimální velikost čtených dat (typicky desítky bajtů), minimální velikost zapisovaných dat (typicky kilobajty) a minimální velikost mazaných dat (typicky kolem 100 kB).
Zatímco pro změnu jednoho bitu jedním směrem stačí data pouze zapsat, pro změnu druhým směrem je nutné velkou oblast dat nejdříve smazat.
Řadič tedy musí zajistit, že se data píší do čistých bloků, zároveň by se ale měl vyhýbat příliš častému mazání (protože zkracuje životnost a výrazně zdržuje). Je proto vhodné si udržovat čisté bloky do zásoby. Ovšem každému přemazání však musí předcházet buď přestěhování všech platných dat jinam (což vyvolává nutnost si uchovávat rezervní bloky) nebo si je podržet v paměti (což může způsobit rozsáhlou ztrátu dat při nečekaném výpadku napájení).
V Linuxu problematiku řeší např. JFFS*, který je schopen pracovat přímo nad NAND flash.