Každý z nás si niekedy nechcene zmazal nejaký dôležitý súbor. Či už išlo o nejaký dokument, fotku či čokoľvek iné, ide o niečo, čo poriadne zabolí a zúfalo sa snažíte situáciu vrátiť späť. Ak viete ako na to, často sa to podarí. Teda, darilo sa…, než sa stali SSD štandardnou výbavou počítačov.

Mnoho ľudí dobre vie, že zmazaný súbor na ich počítači nie je obvykle zmazaný naozaj a vždy je šanca na jeho obnovu. Možno nevedia prečo je to tak, ale často počujú o tom, že hlavne krátko po zmazaní je šanca na jeho obnovu takmer 100 % a stačí použiť len správny program.

Ako to už ale býva, doba i technológie sa menia, pričom obvykle sa mení rýchlejšie, než všeobecné povedomie ľudí. Často sa potom stretávame s tým, že ľudia všeobecné a dobre známe návyky uplatňujú aj na technológiách, pre ktoré už dávno neplatia. Ako príklad by mohli slúžiť batérie notebookov či telefónov Li-Ion, na ktoré ľudia stále často uplatňujú dnes už nezmyselné rady, ktoré pôvodne platili pre NiMH batérie.

Podobne je to aj v prípade SSD, v rámci ktorých obnova zmazaných dát naráža na jeden obrovský problém, ktorý tento proces robí prakticky nemožným (nepliesť si obnovu zmazaných dát s obnovou stratených dát z dôvodu chyby súborového systému či poruchy radiča).

Odlišnosť obnovy zmazaných súborov z HDD a SSD je daná ich odlišným spôsobom fungovania. Ale ten rozdiel nie je až tak veľký, ako by sa mohlo na prvý pohľad zdať. I keď technologicky ide o celkom odlišné úložiská, tak z hľadiska vyššej úrovne obsluhy sú dáta ukladané totožne.

Dá sa to vysvetliť jednoducho na príklade knihy. Ako je text v knihe uložený? Nuž, napríklad vo forme slovenských slov a viet. To je pravda, že áno. No ale takisto je pravda, že je zároveň uložený aj pomocou písmen latinskej abecedy. Tým to ale nekončí. Pravda je takisto to, že je v nej uložený formou čiernej farby odtlačenej na bielom papieri.

Všetky tieto tri fakty a spôsoby uloženia sú pravdivé, ale pravdaže trochu inak. Prvé dve formy splňuje aj elektronická kniha, ktorá sa líši až v tom poslednom fakte, kde je atrament na papieri nahradený svetlom displeja.

HDD a SSD majú takisto rôzne úrovne a pravdy o uložení dát. Formu slov a viet nejakého jazyka reprezentuje súborový systém, ako napríklad NTFS. V prípade SSD a HDD ide o totožnú vec. Takisto latinská abeceda, tu v podobe binárneho kódu zloženého z jednotiek a núl, je na SSD aj HDD totožná. Rozdielom je až posledná úroveň uloženia, kde HDD používa regióny magnetických zŕn na točiacej sa platni, zatiaľ čo SSD zas čipy s tranzistormi.

PREČO JE VLASTNE OBNOVA ZMAZANÝCH DÁT NA HDD TAK JEDNODUCHÁ?

Rýchla odpoveď: maže sa len záznam o existencii súboru, nie súbor samotný. To ale v základe platí aj pre SSD (ak viete, prečo je to tak, preskočte rovno na ďalšiu kapitolu).

Presnejšia odpoveď: Aj keď vás to možno prekvapí, obnova zmazaných dát na HDD a SSD v základe prebieha rovnako a z princípu práce neexistuje dôvod, prečo by na SSD mala byť ťažšia ako na HDD. Operačný systém totiž na ne ukladá dáta totožne.

On totiž pracuje len s s vetami, slovami (súborový systém NTFS) a písmenami abecedy (binárny kód). To, ako sú dáta uložené fyzicky je mimo jeho moci a záujmu.

Problematiku uložených súborov si je možné opäť jednoducho predstaviť ako knihu, avšak tentoraz v podobe úvodného obsahu a následných kapitol.

Obsah nám hovorí, že kapitola „Môj pracovný dokument Wordu“ je na strane 1 až 3, zatiaľ čo pesnička vo formáte MP3 s názvom „Darude – Sandstorm“ je uložená na strane 4 až 7 a video „Rambo 1“ vo formáte MKV zas na stranách 25 až 33.

Ak zmažeme pesničku „Darude – Sandstorm“, na HDD sa jej dáta v skutočnosti neodstránia. To by bolo zbytočne zdĺhavé. Bleskovo sa len zmaže záznam z obsahu, ktorý hovorí, že táto pesnička je na strane „4 až 7“, respektíve v konkrétnych sektoroch pevného disku. Miesto je tak od tohto momentu evidované ako prázdne a kedykoľvek môže byť zaplnené novými dátami, ktoré uložíte na disk neskôr. Až vtedy sa pôvodné dáta naozaj stratia.

Prečo je to tak? Fyzicky sú na diskovej platni dáta uložené v podobe regiónov, zložených zo skupín zrniek feromagnetického materiálu. Takáto skupinka zrniek sa magnetizuje zapisovacou hlavou buď so severnou alebo s južnou polaritou, čo reprezentuje hodnotu 0 alebo 1.

Zmena orientácie magnetických zŕn je rýchly a jednostupňový krok. Zjednodušene si to možno predstaviť ako šípku, ktorá ukazuje na juh alebo na sever. Zápis si môžeme predstaviť tak, že nad jednotlivými bunkami posúvame ruku s magnetom a podľa toho či chceme v tej či onej bunke zapísať 1 alebo 0, magnet otáčame južnou alebo severnou stranou smerom dole.

Trik je v tom, že je irelevantné, akú magnetickú orientáciu majú zrná v bunke na začiatku procesu (ktorým smerom ukazuje šípka). Zápis/Prepis dát je vždy rovnako rýchly. Ak potrebujeme uložiť napríklad hodnotu 1001, zapisovacia hlava pri pohybe nad štyrmi bunkami magnetu skrátka zavelí sever, juh, juh, sever a je hotovo. Bunky pod magnetom sú zarovnané na správne hodnoty 1001.

A keďže to čo bolo v bunkách predtým čítaciu/zapisovaciu hlavu vôbec nezaujíma a nijak ju ich aktuálny stav nespomaľuje, dáta sa na HDD mažú len rýchlym vymazaním záznamu o tom, že niekde existujú. Miesto je skrátka označené za prázdne a tým je to vybavené. Pri najbližšej príležitosti sa do neho zapíšu iné nové dáta.

A toto je dôvod, prečo je obnova zmazaných dát taká jednoduchá a bezproblémová a to až do doby, než dôjde k prepisu daného miesta novými dátami. Špecializovaný program totiž ignoruje „obsah na začiatku knihy“ ktorý mu hovorí, že dané miesto je prázdne a začne dané stránky čítať. Nachádza pri tom 1 a 0 pričom niektoré reprezentujú hlavičky súborov, ktoré sa týkajú toho, o aký súbor ide, ako sa volá a aký je veľký, kde začína a končí.

Programy takto čítajú aj zmazaný „obsah knihy“, vďaka čomu sa dozvedia, ako sa pôvodný súbor volal a kde je. Obnova teda nie je problémom ani v prípade, že je súbor fragmentovaný a jeho časti sú zapísané na rôznych miestach disku. Dáta sú totiž stále na svojich pôvodných miestach. Nič nezmizlo. Súbor sa obnoví skrátka tak, že sa kopírovaním zapíše niekde inde, čím sa vytvorí pre neho nový a platný záznam v obsahu (MFT tabuľke).

Z pohľadu úspešnosti obnovy závisí teda iba na jedinej veci – aby pôvodný súbor nebol prepísaný.

Možno vám ešte vŕta v hlave, že či by nebolo predsa len lepšie, keby disk nepotrebné dáta naozaj fyzicky mazal. Skúste sa ale zamyslieť nad tým, čo to vlastne znamená. Myslíte tým napríklad to, že by ste nastavili hodnotu zmazaných buniek napríklad na nulu? K čomu by to bolo dobré? Disk by nebol ľahší ani rýchlejší. Z jeho pohľadu sú nuly a jednotky len zmagnetizované zrná smerom na sever alebo na juh. Nikdy ich nebude mať menej.

Predstava o tom, že nastavenie buniek na nulu je prázdne a nastavenie na jednotku je plné, je ako snažiť sa „vyprázdniť“ peňaženku preplnenú mincami tak, že ich otočíte všetky lícom hore. Ich počet zostane rovnaký. Smer ich otočenia je z pohľadu zaplnenia irelevantný.

Prepis disku kompletne na 0 alebo kompletne na 1 má význam len v prípade, že nechceme aby niekto pôvodné dáta obnovil. Je to bezpečnostné hľadisko, nie výkonové. Takéto nastavenie kompletného disku na jednu hodnotu trvá tak dlho, ako kompletne disk zaplniť zapísanými dátami. Zapisovacej hlave je totiž jedno či zapisuje iba nuly, nuly a jednotky, alebo iba jednotky. Všetko trvá rovnako dlho.

PREČO TO SSD TAKTO NEMÔŽE ROBIŤ?

Rýchla odpoveď: No, v základe tomu nič nebráni. Koniec koncov, USB kľúče či pamäťové karty sa navonok správajú rovnako ako HDD a zmazané súbory je z nich možné obnovovať rovnako úspešne. SSD však tvorí výnimku, pričom príčinou tohto javu je snaha o vyšší výkon.

Presnejšia odpoveď: Či už používate na svojom počítači HDD alebo SSD, z pohľadu používateľského rozhrania operačného systému sa správajú totožne. Áno, kapacita, rýchlosť a reakcie sú odlišné, ale súbory skrátka v rámci rozhrania ukladáte, presúvate a premenovávate rovnako. Oba totiž používajú súborový systém NTFS (napríklad) a binárny kód.

Pravdaže, interne je spôsob uchovávania dát výrazne odlišný. Kým na HDD sú dáta reprezentované bunkami s odlišnou orientáciou magnetických zŕn, tak v prípade SSD, pamäťových kariet a USB kľúčov sú dáta reprezentované nabitím alebo vybitím plávajúceho hradla tranzistoru NAND flash. Preto ich aj voláme „flash úložiská“.

Pamäť typu flash (presnejšie NAND flash) používa na uloženie jednotky miniatúrny, elektricky nabitý alebo vybitý tranzistor (vybitý tranzistor reprezentuje 1, pretože pri čítaní odpovedá kladne), čo je totožný princíp, aký používa na uloženie dát aj operačná pamäť (RAM). Problém RAM však je, že jej MOSFET tranzistory sa vybijú už za niekoľko milisekúnd, takže všetky dátové hodnoty je nutné neprestajne obnovovať ich znovunabitím mnohokrát za sekundu. Z tohto dôvodu operačná pamäť drží dáta len keď sa neprestajne elektricky napája.

Keďže pri dátovom úložisku (SSD či USB kľúč) musia dáta zostať uchované aj po odpojení prúdu, vyžaduje si to konštrukciu komplexnejších typov tranzistorov, obsahujúcich riadiace a plávajúce hradlo. V rámci nich sa práve to druhé „plávajúce“ (odizolované) hradlo používa ako zásobník, kde sa elektrický náboj dlhodobo uchováva.

Takéto pamäte sú z dôvodu komplexnej schémy nesmierne pomalé na zápis (používali a stále sa používajú napríklad na uloženie firmvéru v hardvéri). A práve v tomto bolo vynájdenie NAND flash prelomové.

Tranzistory NAND flash upustili od komplexnej schémy, pri ktorej má každý tranzistor samostatné elektrické zapojenie. Namiesto toho si takýto tranzistor ponecháva len samostatné zapojenie riadiaceho hradla, pričom v rámci NAND flash čipu sa následne vytvorí bloková schéma, pri ktorej sa séria 32 tranzistorov podelí o jedno spoločné elektrické zapojenie elektród.

To umožnilo nielen pokles výrobnej ceny, zhustenie konštrukcie a väčšiu kapacitu (čím začala byť táto pamäť konkurencie schopná), ale aj omnoho vyššiu rýchlosť čítania a zápisu ako HDD.

Toto riešenie má však oproti zápisu aký používa HDD zásadný problém. Keďže každý blok 32 tranzistorov zdieľa spoločné elektródy (Source a Ground), tak každý jeden tranzistor dokáže zapísať sám iba hodnotu 0 (dokáže sa nabiť).

Vybiť na hodnotu 1 sa ale sám nedokáže. A chceme nejaký tranzistor vybiť, musíme zopnúť obvod s elektródami, čo vybije na hodnotu 1 všetkých 32 tranzistorov v danom bloku. Ako sa teda dáta zapisujú? Nuž takto:

Pre zjednodušenie použijeme príklad, v ktorom máme sériu z 5 tranzistorov, nesúce hodnotu 01011. Ak chceme zmeniť hodnotu na 00011. Žiadny problém. Radič SSD nakáže druhému tranzistoru zľava, aby sa prepol na nulu a je hotovo.

Čo ak ale chceme 01011 zmeniť na 11011. Radič už nemôže nakázať prvému tranzistoru, aby sa zmenil na 1, pretože to nedokáže. Musí hodnotu všetkých 5 tranzistorov prečítať (01011), zapamätať si v rámci vyrovnávacej pamäte (cache) novú pozmenenú hodnotu 11011 a následne tranzistory jedným signálom prepnúť na 11111. Podľa zapamätanej hodnoty následne prikáže tretiemu tranzistoru, aby sa prepol na 0, čím dostane chcenú hodnotu 11011.

Ide veru o komplexný proces, ktorý je značne zložitejší, než zmena magnetickej orientácie zŕn jednej bunky disku, ktorá sa mení samostatne a bez naviazanosti na tie ostatné. Avšak aj napriek tomuto komplexnému postupu je flash pamäť stále rýchlejšia ako magnetický zápis, pretože prebieha plne elektricky a bez mechanického pohybu.

Na moderných SSD je reálna situácia zápisu trošku komplexnejšia, pretože NAND flash tranzistory dnes nedržia iba bitové hodnoty 1 a 0, ale aj dvojbitové (00, 01, 10, 11), trojbitové či štvorbitové hodnoty, pričom takéto bunky označujeme ako MLC, TLC a QLC. Princíp ich práce je však v základe totožný. Na rozdiel od vybitého a nabitého hradla sa operuje s úplne vybitým hradlom (11), do tretiny nabitým hradlom (01), do dvoch tretín nabitým hradlom (10) a plne nabitým hradlom (00), pričom tranzistor sa môže samostatne pohybovať len smerom k čoraz väčšiemu nabitiu. Vybitie je opäť hromadné.

SSD A PROBLÉM NEVIDITEĽNÉHO TRIM ZÁHRADNÍKA

OK, v čom je teda problém? Ak sa na tento princíp pozrieme, nič nám predsa nebráni v obnove zmazaných dát. Ak súborový systém NTFS (alebo FAT32  či exFAT) maže len záznam „v úvodnom obsahu“, ktorý nesie údaje o tom, kde je tá či oná kapitola (súbor), tak predsa aj na NAND flash nájdeme zmazané dáta stále na pôvodnom mieste. Nie?

Áno, je to tak. Ale len na pamäťových kartách, či na USB kľúčoch. Našli by sme ich aj na SSD, ale len na tých, ktoré prevádzkujeme na starých operačných systémoch (napr. Windows XP). Tie aktuálne používajú mechanizmus známy pod označením TRIM, čo sa dá voľne preložiť ako kosenie či strihanie.

TRIM je označenie pre príkaz, ktorý umožňuje, aby operačný systém mohol informovať radič SSD disku o tom, ktoré dátové bloky obsahujú už neplatné dáta, teda tie, ktoré patria zmazaným súborom.

V základe ide o to, že radič SSD vykoná cielené resetovanie označených blokov na hodnoty 1, aby bolo do nich možné neskôr rýchlo zapisovať 0 samostatne každým tranzistorom zvlášť. Keďže táto operácia je obvykle vykonávaná v čase, kedy disk nevykonáva inú činnosť, používateľ v rámci práce TRIM mechanizmu nepocíti žiadnu stratu výkonu.

TRIM je z hľadiska SSD mimoriadne výhodná funkcia, ktorá prináša dva veľké benefity. V prvom rade je zápis na disk rýchlejší, pretože do „prázdnych“ ostrihaných tranzistorov, obsahujúcich len hodnotu 1, je možné zapisovať rovno a do každého zvlášť (nie je pred zápisom nutné čítať a resetovať blok).

To však nie je všetko. Strihanie v podobe TRIM funkcie zlepšuje výkon aj tým, že v prípade prepisu je rýchlejšie aj samotné resetovanie blokov. Stačí sa pozrieť na nasledovný obrázok:

Ak je disk neostrihaný, pri resete bloku musí radič prenášať hore dole aj neplatné/zmazané hodnoty, ktoré už nemajú žiadne využitie. Tým sa zhoršuje nielen rýchlosť, ale sa aj zvyšuje opotrebovanie tranzistorov a teda celého SSD. Ak je ale ostrihaný cez TRIM, hodnoty, ktoré sa zapisovať už nemusia, sa pri resetoch už nezapisujú.

TRIM je teda výborná vec a boli by ste hlupáci, ak by ste ho moderným SSD a operačným systémom zakázali používať. Problémom je, že TRIM má nevyhnutne nechcený efekt v tom, že zabraňuje úspešnej obnove zmazaných dát.

Nie je to účel. Je to vedľajší produkt jeho činnosti. Ak nejaký súbor zmažete, operačný systém nielenže zmaže jeho záznam z MFT, teda knižného obsahu súborového systému NTFS (tak ako v prípade HDD), ale zároveň informuje radič SSD o tom, ktoré tranzistory jeho dáta niesli. Keďže SSD disk chce budúci zápis nových súborov do daného miesta urýchliť a zároveň nechce prenášať už nepotrebné dáta pri operáciách s celým blokom, naplánuje ich ostrihanie.

Pri najbližšej príležitosti teda na dané miesto nabehne záhradník a pokosí dané tranzistory na hodnotu 1. A tým nám v obnove dát zabráni, pretože ich de facto prepíše novými hodnotami (jednotkami). Ako rýchlo sa to stane?

Nuž, treba povedať, že obvykle behom pár sekúnd. Aj keď operačný systém s SSD, na ktorom je umiestený, pracuje „stále“, realita je taká, že počet operácií, ktoré SSD môže v jednej sekunde robiť, je masívny. Takže dostatočná „pauza“, ktorá umožní strihanie urobiť bez straty výkonu, ktorý by pocítil používateľ, nastane veľmi rýchlo.

Aby ste videli ako rýchlo nastane naozaj, predvediem vám to pomocou programu TRIM check. Na kratučkom videu môžete vidieť, ako programom vytvorím na 500 GB SSD disku Samsung súbor a následne ho zmažem. Program si zapamätá bloky tranzistorov, kde bol súbor uložený, pričom má jeho pôvodnú kópiu.

Následne počkám 30 sekúnd a súbor sa z pôvodného miesta pokúsim programom obnoviť. Program prečíta presne tie tranzistory, na ktorých bol súbor pôvodne umiestený, avšak už márne. Odpoveďou sú len jednotky a obnovený súbor nemá s pôvodným súborom nič spoločné. Za takto krátky čas už TRIM príkaz prebehol.

Ukážka toho, ako SSD Samsung 850 EVO ostrihá hodnoty súboru za 30 sekúnd od jeho zmazania, čím kompletne zlikviduje jeho pôvodné dáta.

Ak použijete klasický program na obnovu súborov, ako napríklad Recuva či iné, zmazaný súbor na SSD disku obvykle „opticky“ nájdete, pričom má správny názov, príponu aj veľkosť. Ak sa ho však pokúsite obnoviť, zistíte, že súbor je už nefunkčný a nedá sa otvoriť/použiť.

Je to z dôvodu, že sa úspešne prečíta len jeho popisný údaj zmazaný z MFT, teda „úvodného obsahu“, kde TRIM mechanizmus neprebieha. Máte teda dáta o tom, kde sa súbor nachádzal a aký bol. Avšak ak následne prečítate pamäťové bunky, ktoré jeho dáta niesli naozaj, dostanete len jednotky. Dáta boli už medzičasom „ostrihané“ TRIM mechanizmom a sú nepoužiteľné.

A to je prosím pekne zvonec a rozprávke o obnovení dát je koniec.

Pri celej problematike si pravdaže nutné uvedomiť, že TRIM funkcia likviduje zmazané dáta ako vedľajší efekt svojej práce. Bolo by nerozumné sa na TRIM spoliehať ako na bezpečný mazací mechanizmus, ktorý zlikviduje všetky vaše zmazania a disk môžete následne dať do nepovolaných rúk.

Rôzne SSD a operačné systémy používajú TRIM inak a pauza medzi prebehnutím môže byť väčšia. Okrem toho, chyby firmvéru SSD nie sú ničím výnimočné a je možné, že TRIM na nejaký čas prestane fungovať, vynechá niektoré čipy či ich časti.

Ak pracujete ako technik vo firme na obnovu dát, alebo ako špecialista polície zhromaždujúci dôkazy o trestných činoch, je vždy dobré sa zmazané dáta na SSD snažiť obnoviť. Je možné, že malá časť z nich bude stále funkčná (najmä ak sa mazal veľký počet súborov) a aspoň čiastočne zachránite zákazníka pred infarktom, alebo usvedčíte zločinca.

Okrem toho treba takisto pripomenúť, že TRIM mechanizmus neprebieha na SSD v prípade, že nastane poškodenie dát na úrovni súborového systému, poškodí sa bootovací sektor alebo dôjde k strate/rozpadu diskových partícií.

V takomto prípade prebieha záchrana dát tak ako na HDD a zvyčajne aj rovnako úspešne, pričom to isté platí aj pre fyzické poruchy, ako zhorenie napájania, poškodenie čipu radiča, spálenie kontaktov čipov a podobne. Ide totiž o obnovu stratených dát, nie zmazaných. Zmazané dáta sú ale vec iná. No a teraz už viete prečo…

František Urban

František Urban
Zameriavam sa najmä na prehľadové a analytické články z oblasti najrôznejších technológií a ich vývoja. Nájdete ma takisto pri diagnostike HW a SW problémov.