Jednoduchy priklad - vezmete kartu z fotaku, na ktere je FAT32 plnou fotek a vsechny ja smazte. Spravce souboru ukaze +-100% volneho mista. Staci ale pouzit nastroj typu
undelete (jako mel MS-DOS) a s velikou pravdepodobnosti vsechny fotky obnovite.
Operacni system si
pouze ve FAT tabulce (u jinych souborovych systemu se to jmenuje jinak) oznaci, ze na adrese
x az
y, kde lezel puvodni soubor nic neni. Ale data fyzicky z disku nesmaze. Je to logicke, plotnove disky byly pomale a pokud by operacni system vzdy poctive data smazal, vykon by klesl o desitky procent. Navic plotnovemu disku bylo jedno, jestli pri zapisu zapisuje na "cisty" sektor, nebo prepisuje nejaka data.
SSD pracuje uplne jinak: pokud je blok (asi vzdy 512kB) prazdny, normalne se bit zapise. Pokud prazdny neni, musi se pul megovy blok nacist do diskove cache, zmenit jeden bit a cely pul megovy blok zapsat zpet na disk (pak jeste pozor na zarovnani diskoveho oddilu). Ohromne zpomaleni.
Proto existuje prikaz TRIM (soucast standardu ATA - ATA8-ACS2). Operacni system si ve FAT tabulce smaze odkazy na data v danych adresach a zavola TRIM. Tim rekne disku: ja (OS) jsem si smazal soubor lezici na adrese
x az
y, data co tam zbyly uz tedy nejsou potreba. SSD disk si takto oznacene misto muze smazat (nebo interne oznacit jako prazdne, to nevim) a priste se k nemu chovat jako k volnemu.
Vzdyt je to tak jednoduche...
Pravidlo volnych 20% samozrejme plati, ale s TRIM uplne nesouvisi. Pokud disk zpanite z 99,9%, nemuze radic pouzivat svou "logiku" pri zapisu a prepisu. Pokud je dost volneho mista, nove zapisovana data muze radic okamzite zapisovat do volnych pul megovych sektoru. Pokud ma ale hodne malo mista, bude muset (asi) dopisovat do ne uplne plnych pul megovych sektoru.
Je to jako u modernich FS (NTFS, ext3), ty take mezi daty pri zapisu narozdil od FAT delaji mezery pro pozdejsi zvetseni souboru bez nutnosti prerovnani.
Takze 20% urcite volnych nechte a take pouzijte TRIM. Pro pohodli at nemusite nic hlidat je vyhodne nechat cca 20% kapacity disku bez oddilu, narozdil od plotnoveho disku uz si SSD nehraje na fyzicke umisteni oddilu po sobe.
Mozne reseni co me napada:
Podle wikipedia ma Linux
podporu TRIMu na FAT. Takze by mozna slo udelat na disku dva oddily, jeden maly ext4 (asi do 1GB na Linux) a zbytek disku (bez 20%) FAT32 a na ten dat Windows XP.
Pri bootovani by se nejdriv spustil Linux a pomoci prikazu "
fstrim /oddil/fat32/s/windlema" by spustil TRIM, hned pote by nejak nebootoval Windows XP.
Fragmentace na FAT32 by pak vlastne nemusela vadit. Pokud by nebyl uptime Widli v radech tydnu a neprovadeli se velke zapisy/prepisy dat mezi restarty PC, myslim, ze vykon by nemusel byt spatny...