Zachraňujeme dáta zo zlyhávajúceho disku. Zn. zadarmo

Pevné disky, USB kľúče, pamäťové karty či optické médiá nevydržia do nekonečna. Únava materiálu, nesprávne zaobchádzanie či jednoducho zhoda náhod Vás môžu pripraviť o dáta. Ako dostať čo najviac z umierajúceho média, bez nutnosti kupovať drahé programy, si priblížime v tomto článku.

Úložiská na sto spôsobov

Hoci dáta ukladáme na kadečo, v princípe sa jedná o 3 základné technológie - pevné disky, flash pamäte a optické médiá. Nakoľko posledné menované sú skôr na ústupe, budem sa v článku venovať najmä zvyšným dvom technológiam. Postup záchrany pre HDD/flash je možné aplikovať aj na optické médiá.

Pevné disky

Pevné disky na magnetickom princípe tu máme pomerne dlho - prvý vyrobilo IBM už v roku 1956, pričom vedenie ho pôvodne ani uviesť nechcelo - konkuroval by vtedy veľmi populárnym diernym štítkom. Mal kapacitu 3.75MB, vážil vyše tony a veľký bol asi ako dve veľké chladničky vedľa seba. Trvalo ďalších 30 rokov, kým sa objavil disk v približnej veľkosti, aké používame dnes. V roku 1983 bol predstavený prvý disk formátu 3.5" od už neexistujúcej firmy Rodime. Ten už vážil už len 2.2Kg, jeho kapacita bola 12.75MB s dvoma platňami, no bol ďaleko vyšší než súčasné disky. Behom ďalších troch dekád išiel vývoj diskov veľmi rýchlo dopredu, no princíp ostáva v zásade rovnaký.

(disk bez vrchného krytu - vidno platne, vystavovací mechanizmus s hlavami ako aj napr. oranžový diel slúžiaci ako parkovisko pre hlavy)

Disk je vybavený niekoľkými rotujúcimi platňami s magnetickým povrchom. Dáta sú čítané a zapisované pomocou sady čítacích a zapisovacích hláv, pričom každému povrchu (= každej z dvoch strán platne) pripadá jedna. Jej vzdialenosť od povrchu disku je v súčasnosti v rádoch nanometrov (okolo 100 atómov!). Hlavy sú umiestnené na pohyblivom ramene, ktoré spolu s motorčekom tvoria mechanizmus vystavenia. A úlohou elektroniky je koordinovať tento vystavovací mechanizmus tak, aby mohli byť prečítané/zapisované správne údaje. Dáta su uložené na feromagnetickej vrstve, pričom pomocou hlavy je možné meniť magnetický stav jednotlivých magnetických buniek. Najmenšia adresovateľná jednotka na disku je jeden sektor, ktorý pozostáva z 512 bajtov, u nových diskov s Advanced Format má 4096 bajtov.

Technológia FLASH - SSD, USB kľúče, pamäťové karty

Napriek tomu, že SSDčka, USB kľúče či pamäťové karty do mobilných telefónov či fotoaparátov majú rozličné určenie, v zásade využívajú veľmi podobnú technológiu, ktorú poznáme pod názvom FLASH. Nejedná sa o pamäť na magnetickom princípe, FLASH pamäte pozostávajú z tranzistorov s plávajúcou bázou.

(schéma tranzistora s plávajúcou bázou, zdroj)

Tranzistor vo FLASH pamäti sa od bežného tranzistora odlišuje tým, že má bázy dve - jednu kontrolnú, druhú plávajúcu. Kľúčovú rolu hrá práve plávajúca báza, ktorá je od okolia odizolovaná vrstvou oxidu kremičitého. Vďaka tomu, že je táto báza izolovaná od okolia, nemôžu z nej privedené elektróny "utiecť", a tým sa zachováva binárny stav nabitá/nenabitá, čo odpovedá uloženej binárnej informácii 0/1. Elektróny sa na plávajúce hradlo privádzajú/odvázadjú tunelovým efektom (trochu kvantovej mechaniky) v závislosti na type bunky - NOR alebo NAND. Pokiaľ je u NOR tranzistor otvorený a elektróny prechádzajú z emitora na kolektor, nastaví sa vysoké napätie medzi kolektor a kontrolnú bázu, čím dôjde k tunelovému efektu a elektróny sú nasaté na plávajúcu bázu. Pokiaľ je vysoké napätie nastavené medzi emitor a kontrolnú bázu, elektróny plávajúcu bázu opustia, opäť s využitím tunelového efektu. Čítanie prebieha tak, že sa na kontrolnú bázu privedie špecifické napätie. Prítomnosť elektrónov na plávajúcej báze toto napätie na kontrolnej báze znižuje, a teda ovplyvňuje stav vodivý/nevodivý. Pokiaľ je teda plávajúca báza nabitá, pri čítaní tranzistor nezopne, a naopak.

Nič nevydrží večne (HDD)

V predchádzajúcej kapitole sme si priblížili, ako zhruba fungujú základné technológie pre uskladnenie dát, každá z nich má svoje úskalia.

Pevný disk pozostáva, napriek dlhoročnému vývoju, z veľmi delikátnej mechaniky, a hoci výrobcovia garantujú že disk ustojí pád o sile niekoľkých G, nie vždy tomu tak je, čo mnohí z Vás už zrejme zistili. Ako bolo spomenuté v predchádzajúcej kapitole, vzdialenosť hlavy disku od povrchu platne je veľmi malá, sú to len cca 3 nanometre! Veľmi častým pojmom je tzv. head crash, kedy dôjde k nárazu čítacej-zapisovacej hlavy disku o povrch platne. Je to spôsobené mechanicky, či už nárazom, priveľkými vibráciami alebo nežiadúcimi časticami prachu.

Pokiaľ uvažujeme 7200-otáčkový disk s rozmerom platne 3.5" (t.j. priemer 8.89cm), okraj platne dosahuje obvodovú rýchlosť 120km/h. Po kontakte sa hlava zaryje to krycej vrstvy platne, pokiaľ je však náraz príliš silný, túto vrstvu prederie a zaryje sa do magnetického povrchu disku, čo na ňom zanechá vyryté prstence. Navyše sa hlava vplyvom trenia prehreje a až do vychladnutia je nepoužiteľná. Vplyvom nárazu a vysokých teplôt taktiež dochádza k jej poškodeniu, čo sa nutne nemusí prejaviť okamžite. Keď však disk dospeje do stavu, že len kliká a PC ho vôbec nerozpozná, je to veľmi často spôsobené práve zničením/zlyhaním hláv. Hlava totiž nedokáže správne zistiť svoju polohu, resp. čítať dáta, a behá z jednej strany na druhú, pričom to kliknutie značí náraz do tunelu s ložiskami.

(head crash, resp. "autogram" hlavy na platni, zdroj)

Najmä u starších notebookov bol náraz hlavy kameň úrazu, ak nedajbože spadol počas prevádzky a hlava sa nestihla zaparkovať a zaryla sa do platne. V súčasnosti sú nielen notebookové disky vybavené aktívnou ochranou napr. v podobe detekcie voľného pádu, alebo detekciu výpadku prúdu, v oboch prípadoch sami zaparkujú čítaciu hlavu na bezpečné miesto, správne zaparkované rameno vidno na obrázku vyššie.

Problémom súvisiacim s head crash je tzv. kontaminácia disku. Pevné disky sa vyrábajú v halách, kde je čistota prostredia ďaleko vyššia ako napr. v operačnej sále v nemocnici. Taký Western Digital vyrába disky v halách, ktoré dodržujú štandard ISO 14644-1 triedy 4, čo znamená, že na meter kubický vzduchu môžu byť najviac 3 častice prachu väčšie ako 5 mikrometrov! Hoci sú disky vyrábané v takto čistých halách, nie je možné vylúčiť kontaminovaný kus, t.j. disk, do ktorého sa pri výrobe dostala čiastočka prachu. Potom je len otázkou náhody, či sa častica dostane na platňu a následne nad toto miesto zaparkuje hlava, ktorá sa tým nielenže môže poškodiť, ale okrem toho urobí do platne vryp (head crash), zarytím sa zase uvoľní nejaký ten materiál v podobe prachu, ktorý sa opäť môže dostať medzi hlavu a platňu a problém je na svete. Kontaminácia nemusí nutne nastať počas výroby. Disk má na obale malý otvor pre vyrovnávanie tlaku a vlhkosti, v ktorom je osadený filter. Aj ten však môže časom zlyhať a prepustiť častice prachu do vnútra disku. Nehovoriac o tom, že keď HDD otvoríte doma "na kolene", je okamžite kontaminovaný.

(vzdialenosť hlavy od povrchu je ozaj malá - porovnanie s bežným neporiadkom, zdroj)

Ďalším z mechanických problémov je tzv. stuck head, prilepenie hlavy o povrch disku vplyvom napr. vysokej vlhkosti, v čoho dôsledku sa platne disku ani len neroztočia. V takomto prípade musí dôjsť k výmene hlavy, resp. celého vystavovacieho mechanizmu, čo nie je práve práca pre kutila, nakoľko potrebuje veľmi čisté prostredie a patričné vybavenie, najmä prípravok na bezpečné odlepenie hlavy, viď nasledujúce video:

Výmena platní tiež nie je vec, ktorú by ste robili na kolene, môžete vidieť napr. TU.

Extrémisti pozor! Môžte vyskúšať zmrazenie disku (poriadne zabaleného) na asi -18 stupňov po dobu 12 hodín, vtedy sa hlava odlepí a môžete zálohovať, avšak máte asi 20 minút kým sa disk opäť zahreje a hlava sa znova prilepí. Robíte to však na vlastné riziko a nenesieme za to žiadnu zodpovednosť! Po pár zmrazovacích cykloch Vám disk aj tak odíde do kremíkového neba, no pokiaľ nemáte veľa dát, ktoré by ste chceli zachrániť, tak Vám to môže pomôcť.

Chybné sektory nemusia vzniknúť nutne mechanickým poškodením. Môžu vzniknúť vadou magnetickémo materiálu na povrchu platne, ktorý začne nesprávne reagovať na čítacio-zapisovaciu hlavu. Ďalšou kategóriou sú tzv. softvérovo-vadné sektory, ktoré môžu vzniknúť napr. pri výpadku elektrického prúdu, kedy sa na sektor zapíšu nesprávne dáta alebo vadou hlavy sú naň zapísané chybné údaje, pričom tento sektor je potom označený ako chybný napriek tomu, že je v fyzicky poriadku. Na rozdiel od fyzicky zlého sektora môže byť takýto sektor opravený, napr. low-level formátom. Pokiaľ je však poškodená hlava, disk je aj tak na odpis.

Ako disk vlastne nakladá s chybnými sektormi? Každý disk má k dispozícii tzv. spare sector pool, teda určitý počet náhradných sektorov, kam premapuje chybné sektory. Toto miesto však nie je neobmedzené, navyše premapovanie znižuje výkonnosť disku (namiesto súvislého bloku dát sa musí prečítať len časť, potom premapovaný sektor, až potom sa pokračuje ďalej, čo sa pri rotujúcej platni nedá stihnúť za 1 otáčku). Veľký problém nastáva, keď sa tento pool zaplní, vtedy sú takéto chybné sektory označené ako "pending" t.j. čakajúce na premapovanie, ktorého sa už zrejme nedočkajú, jedine že by medzi chybnými sektormi boli nejaké softvérové. Preto pokiaľ sa Vám na disku začnú objavovať chybné sektory, zvážte urýchlene výmenu! Ich počet bude postupne len narastať.

Ďalším podstatným faktorom životnosti diskuje dodržovanie prevádzkovej teploty. Tá je pre pevné disky 5-50 stupňov Celzia, v závislosti na modeli disku. Aký rozsah náleží Vášmu disku môžte zistiť zo SMART výpisu, ktorý by tieto údaje mal obsahovať, získate ich napr. programom SpeedFan, ktorý vie exportovať SMART dáta na hddstatus.com pre hlbšiu analýzu, mimo iného teplotný rozsah či aktuálny počet realokovaných/pending sektorov. Príliš vysoká teplota sa prejavuje častými BSOD, plus môže poškodzovať mechanické časti disku (životnosť ložísk, ...). Vysokú teplotu disku nemusí nutne spôsobovať len jeho zlé umiestnenie či chladenie, ale napr. chybný napájací zdroj. Osobne som zažil prípad, že prerážajúci zdroj zlikvidoval v jednej zostave po sebe 2 pevné disky, pričom jedným z príznakov "umierania" týchto diskov bola práve ich vysoká teplota. Majiteľ zostavy nadával na výrobcov diskov, no už nevidel, že má lacný zdroj v ktorom mu vytiekli kondenzátory.

Nič nevydrží večne (FLASH)

Flash pamäte sú trochu iná kategória, mechnické bolesti pevných diskov ich netrápia a znesú trochu hrubšie zaobchádzanie, za to majú svoje špecifické problémy. V popise sme si uviedli, že FLASH pamäť využíva tunelového efektu pre zápis dát. Problémom je, že tento efekt má deštruktívny vplyv na materiál izolujúci plávajúcu bázu (dioxid kremíka), ktorý začne postupom času elektróny pohlcovať, čím sa zmenšuje rozdiel medzi prahovými napätiami, ktoré odpovedajú úrovniam pre logickú 0 a 1. Tým pádom ostane pamäťová bunka, po určitom počte zápisov, trvale v stave logickej jednotky (nemá náboj. t.j. neblokuje čítacie napätie), prípadne v nedefinovanom stave, kedy prečítané napätie neodpovedá ani jednému z definovaných stavov.

FLASH bunky majú životnosť zhruba 100 000 zápisových cyklov (SLC, 1 bit na bunku, 1 napäťová úroveň), okolo 5000 pre MLC (= bežné SSD, 2 bity na bunku, 2 napäťové úrovne), TLC (tri bity na bunku) len okolo 1000 (napr. taký Samsung 840 non-Pro, 840Pro je MLC). Prečo tendencia klesá je celkom jasné - ako sa materiál unavuje, klesá schopnosť rozpoznať stavy, a na čím viac napäťových úrovní chceme nastaviť na plávajúcej báze, tým užšie sú intervaly medzi nimi menšie a tým rýchlejšie môže dôjsť k chybe, resp. konečnému štádiu opotrebovania. Preto odporúčam vyvarovať sa SSD s TLC pamäťami pre náročné použitie, pre domáce použitie možno postačuje, v náročných podmienkach aspoň MLC. Pri zápise 20-30GB dát Vám aj TLC potenciálne vydrží roky (spomínaný Samsung 840 s TLC pamäťami vydržal v teste na xtremesystems.org 432TB zápisu). Paradoxom vývoja SSD je, že so zmenšujúcim sa výrobným procesom klesá aj životnosť pamäťových buniek - kým 34nm MLC zvládnu 5000 P/E cyklov, 25nm už len 3000. Nižší výrobný proces znamená nižšie napätie, užšie intervaly pre jednotlivé stavy.

Práve preto má každý radič FLASH pamätí integrovanú techniku pre vyrovnávanie záťaže medzi jednotlivé bunky, aby sa všetky opotrebovávali približne rovnomerne. Nakoľko SSD sú spomedzi FLASH zariadení vyťažované asi najviac, postupne bol do radičov SSD diskov pre zvýšenie životnosti implementovaný garbage collector a príkaz TRIM.

V prvom rade, SSD nie je organizované tak, ako pevný disk - je delené na bloky a tie ďalej na tzv. pages, stránky. Veľkosť stránky je obvykle 4kB (podobne ako v operačnom systéme), blok pozostáva zo 128 stránok, celkovo má teda 512kB. Problém u SSD je, že pokiaľ máme na disku určité dáta a tie zmeníme, nenastane ich prepis, ako na klasickom HDD. Tieto dáta musia byť najprv zmazané a až potom zapísané. Dáta môžu byť zapisované do jednotlivých stránok, no problém je, že mazané môžu byť len celé bloky. Preto SSD, pri prepise dát, pôvodné dáta označí ako neplatné a nové dáta uloží na iné voľné miesto, aj kvôli snahe opotrebovávať bunky rovnomerne. Pokiaľ však chceme zmazať blok a označiť ho ako voľný, musíme platné stránky z tohto bloku niekam presunúť, čím dochádza k tzv. write amplification - teda dáta, ktoré sme dávnejšie zapísali, sú v skutočnosti zapísané na niekoľkých miestach na disku (platná je vždy jedna kópia). WA sa matematicky dá vyjadriť ako pomer medzi množstvom reálne zapísaných dát ku dátam, ktoré zapísal operačný systém. Navyše keď zmažeme súbor, SSD samo o sebe nevie, že sme ho vymazali. Operačný systém totiž len označí v tabuľke súborov dotyčnú časť disku ako voľné miesto, no fyzicky tam dáta stále sú a SSD ich vedie ako platné stránky.

Príkaz TRIM je práve určený na to, aby operačný systém zdelil SSD-čku, že môže dáta po vymazaní súboru fyzicky zneplatniť. Tým nám na disku neostávajú zombie-súbory a garbage collectoru, ktorý sa stará práve o mazanie neplatných blokov a presun platných stránok, to uľahčuje život. A samozrejme sa tým znižuje write amplification, nakoľko nedochádza k presunu stránok, ktoré by boli ináč označené ako platné, no v skutočnosti patria vymazanému súboru. Pre detailnejší popis, ako aj dopad na výkon, odporúčam článok Problémy SSD na našom webe.

Smrť SSD môže byť v určitých prípadoch rýchlejšia ako smrť pevného disku. Elektronika v SSD môže umrieť v podstate z minúty na minútu, bez varovania. Prípadne pre chybu vo firmware sa radič jednoducho zablokuje, a máte po dátach. Riešenie? Niekedy pomôže len odpájkovať kontrolér a priletovať nový. Pokiaľ je SSD interne hardwarovo kryptované, po zlyhaní radiča nezachránite vôbec nič, nakoľko kryptovacie kľúče su pre každý disk unikátne. Preto radšej siahnite po SSD bez vstavaného šifrovania a pre kryptovanie použite napr. TrueCrypt. Firmware však u nových SSD nebýva problém, pôrodné bolesti novej technológie sú zdá sa za nami. Okrem toho sú smrteľné kŕče SSD podobné tým u pevných diskov - BSOD, I/O chyby, nemožnosť čítať súbory...

Pokiaľ SSD zlyháva, garbage collector môže presúvať dáta, ktoré sú zapísané na fungujúcich stránkach, na stránky chybné. A hoci sa počet zlých buniek z krátkeho časového hľadiska meniť nemusí, budete postupne prichádzať o viac a viac dát. Taktiež pozor na výpadky napájania - SSD (FLASH pamäť vo všeobecnosti) je na ne citlivejšia.

Zachraňujeme cez Ubuntu 12.04 Rescue Remix

Pokiaľ Vám zlyháva disk, SSD, optické médium či pamäťová karta a je stále aspoň detekovaná BIOSom, nepotrebujete žiadne komerčné utility, stačí Vám na to Linux na USB kľúči. Jednou zo špecializovaných distribúcií, na ktoré sa dnes pozrieme, je Ubuntu Rescue Remix vo verzii 12.04, ktorý stiahnete zadarmo na stránke projektu ubuntu-rescue-remix.org.

Distribúcia je predurčená na opravu poškodených súborových systémov (vrátane FAT/NTFS) či záchranu dát zo zlyhávajúcich pamäťových médií. V podstate nezáleží na tom, či sa jedná o pevný disk, SSD, optický disk, SD kartu alebo USB kľúč.

Zo zoznamu utilít, ktorými táto distribúcia disponuje, nás najviac zaujímajú dve: GNU ddrescue a ntfsfix (pre prípad disku so systémom NTFS). Linuxáci zrejme poznajú utilitu "dd" (neslávne prezývanú aj Disk Destroyer), ktorá tiež funguje ako low-level kopírovanie z médií. ddrescue funguje podobne, až na to že má v sebe algoritmy, ktoré si vedia poradiť s chybami pri čítaní zo zdrojového média. Utilita svoj postup zaznamenáva do log súboru, ktorý silno odporúčam vytvoriť, nakoľko môžete prácu prerušiť a pomocou logu spustiť program neskôr a pokračovať tam, kde skončil. Prostredníctvom logu si tiež môžte vytvoriť mapu chybných sektorov na disku, napr. programom ddrescueview.

Čo pre záchranu treba? V prvom rade druhý disk, ktorý musí mať buďto toľko voľného miesta, ako je kapacita zdrojového (= chybného) disku, alebo je sám aspoň tak veľký ako zdrojový disk. NIKDY sa záchrana neprevádza na rovnaký disk, hoci aj inú partíciu! Máte na výber dve možnosti, ako dáta cez ddrescue zachrániť:

  • zo zdrojového disku vytvoríte na cieľovom disku image súbor .img, ktorý bude predstavovať bitovú kópiu zdrojového disku
  • alebo obsahom zdrojového disku prepíšete disk cieľový (vytvoríte klon). V tomto prípade odporúčam ešte ďalšiu flashku alebo disk, kam sa bude ukladať log.

Pre ddrescue je jedno, aký súborový systém je na zdrojovom disku, taktiež nerozlišuje voľné miesto, kopíruje disk/partíciu úplne celú! (je možné to limitovať, ale to už musíte vedieť, čo robíte) Program totiž pracuje low-level priamo so sektormi. Zdrojový disk dokonca nemusí byť ani mount-nutý (= pripojený filesystem, súborový systém) a ani sa to neodporúča, často sa to u poškodeného disku ani nedá. Keď je vytvorený image disku alebo je disk naklonovaný, opravy súborového systému sa vykonávajú až na image/klone, napr. práve prostredníctvom utility ntfsfix (prípadne inej, podľa súbrového systému).

Po nabootovaní Rescue Remixu vás bude čakať prekvapenie - táto distribúcia (našťastie) nemá GUI, je čisto terminálová. A čo je tiež plus, súborové systémy diskov nie sú pripojené, t.j. disk v systéme vidíte (ako /dev/sdx), ale nedostanete sa na filesystem. Ako bolo uvedené vyššie, pri práci s low-level utilitou nás filesystem na zachraňovanom disku ani nezaujíma.

Modelový prípad

Záchranu si ukážeme na disku môjho kamaráta, ktorému začal umierať rok starý 2TB disk (schválne neuvádzam model, až sa tu nestrhne flamewar :) ). Z celkovej kapacity bolo zabraných okolo 700GB, pričom drtivú väčšinu tvorili fotografie. Spočiatku sa na disku nedali prečítať niektoré súbory, nasledovali pády súborového systému, ktorý síce Windows pri štarte čiastočne opravil, no po ďalšom reštarte bol súborový systém opäť neprístupný. Z disku sa štandardným kopírovaním podarilo dostať iba 100GB dát.

Už len SMART výpis vyzeral nelichotivo, report môžte nájsť TU. Disk mal 48696 pending sektorov, jeho fitness je nulová. Nakoľko 2TB je pomerne veľká kapacita, disk som naklonoval na druhý, taktiež 2TB disk a kvôli log súboru bol ešte pripojený USB externý disk, ale pohodlne by stačil aj USB kľúč, log súbor má rádovo kilobajty. Plus teda USB kľúč, z ktorého nabootoval Linux. V systéme to teda vyzeralo nasledovne:

  • USB kľúč, z ktorého bootuje Rescue Remix
  • poškodený 2TB disk, identifikovaný ako /dev/sda
  • nový 2TB, na ktorý bude vytvorený klon, /dev/sdb
  • externý disk kvôli zápisu log súboru, /dev/sdc, pripojený ako /media/externy

A ideme do akcie:

1.

Ideálne na inom počítači si pripravte USB kľúč s Rescue Remixom. USB kľúč najprv naformátujte na FAT32. Stiahnite ISO Rescue Remixu a program UNetbootin. Spustite UNetbootin, vyberte ISO súbor a počkajte, kým nebude nahratý na USB kľúč.

2.

Pripravte si počítač, na ktorom budete zachraňovať dáta. Odpojte všetky disky, ktoré nepotrebujete, podstatný je len poškodený disk, cieľový disk, prípadne ešte tretí disk/druhý USB kľúč, kam budete ukladať log z ddrescue, nakoľko log nie je možné ukladať na USB kľúč, z ktorého bootujete (teoreticky je, ale museli by ste si vytvoriť perzistentnú Live USB inštaláciu). Pokiaľ budete vytvárať image a nie klon, môžete log uložiť aj na cieľový disk. Počítajte tiež s tým, že počítač, na ktorom pobeží záchrana, môže v závislosti na veľkosti zachraňovaného disku trvať niekoľko dní.

3.

Nabootujte z USB kľúča, bude Vás čakať terminál. V prvom rade musíme disky v systéme identifikovať. K tomu slúži utilita fdisk. Do terminálu napíšte:

sudo fdisk -l

 

 

 

a mali by ste vidieť výpis podobný tomuto:

(príklad výpisu utility fdisk na mojom notebooku. Výpisy pre jednotlivé disky sú odelené červenou čiarou, zelenou je zvýraznená adresa disku. Vidno dva 320GB disky, každý s 2 partíciami, 128GB SSD s 1 partíciou plus 16GB USB kľúč, z ktorého som nabootoval)

Zaujímajú nás riadky, kde sa uvádzajú cesty ako /dev/sda (ak chceme celý disk, tak bez čísla, ak partíciu, tak aj s číslom podľa zoznamu partícií na disku, napr. /dev/sda2). Disky môžete identifikovať napr. podľa kapacity či počtu partícií. Pokiaľ vytvárate image alebo používate 2 disky identickej veľkosti a rovnakým počtom partícií a neviete ich rozoznať, prejdite na bod 4, ináč skočte na päťku.

4.

Ak vyvárate image, musíte pripojiť filesystem cieľovej partície. Prípadne keď máte zdrojový aj cieľový disk rovnako veľký a neviete ich rozlíšiť, môžete u jedného z nich vyskúšať pripojiť jeho systém súborov. Urobíte to nasledovne:

  • najprv treba vytvoriť prípojný bod (priečinok), obvykle do priečinku /media:
    sudo mkdir /media/mojDisk

    kde mojDisk je meno priečinka, ktorý sa vytvorí, zvoľte aké chcete

  • následne pripojíme súborový systém partície príkazom mount, napr. takto (pripájame partíciu, nezabudnúť na číslo):
    sudo mount /dev/sdc1 /media/mojDisk

 

 

 

Pokiaľ operácia prebehne rýchlo, jedná sa pravdepodobne o fungujúci disk, kam chcete dáta zachrániť. Ak však ostane blikať kurzor rádovo minúty, je to zlyhávajúci disk, po pár minútach zrejme dostanete chybové hlásenie. Overiť to tiež môžete tak, že sa na obsah pripojeného disku pozriete, spustite:

mc

(súborový manažér Midnight Commander) a prejdite na miesto, kde ste vytvorili prípojný bod, v tomto príklade /media/mojDisk, a priečinok otvorte, podľa obsahu by ste to mali poznať.

5.

Pokiaľ poznáme cestky k diskom, môžeme pristúpiť k samotnej záchrane. V prvej fáze sa budeme snažiť zachrániť len dáta, ktoré je možné bez problémov prečítať. Ja som použil klonovanie, takže bolo treba pridať aj parameter --force, ktorým potvrdzujete, že obsah cieľového disku bude prepísaný. Väčšina príkazov musí bežať ako root, preto spúšťame cez sudo, heslo nie je vyžadované.

Štruktúra príkazu je ddrescue [-parametre] [zdroj] [cieľ] [log]. Log je síce nepovinný, ale pri záchrane tento parameter určite zadajte. Pokiaľ log súbor neexistuje, bude vytvorený.

Pre vytváranie klonu v prvej fáze vyzerá príkaz takto (cesty k diskom si nastavte podľa seba):

sudo ddrescue --no-split --force /dev/sda /dev/sdb /media/externy/log.txt

alebo ak vytvárate obraz, napr. takto:

sudo ddrescue --no-split /dev/sda /media/externy/image.img /media/externy/log.txt

U 2TB disku so skoro 50 tisíc chybnými sektormi trvala táto operácia 2 dni. Na záver vidíte vo výpise, koľko celkovo chybných dát na Vašom disku je. V tomto prípade  to bolo okolo 56MB, zvyšok sa podarilo prečítať.

6.

Niekomu môže stačiť záchrana toho, čo sa dalo prečítať a môže preskočiť na bod 7, no ja som sa z disku pokúsil dostať, čo to dá. V druhom prechode povieme ddrescue, nech sa snaží prečítať obsah chybných sektorov, zároveň vyradíme z prevádzky cache operačného systému, aby sme čítali dáta priamo z povrchu.

Pre klon:

sudo ddrescue --direct --force /dev/sda /dev/sdb /media/externy/log.txt

 

 

 

Pre image:

sudo ddrescue --direct /dev/sda /media/externy/image.img /media/externy/log.txt

Tu je práve dôležité mať log z predchádzajúceho kroku, nakoľko všetky korektne prečítané dáta budú preskočené, ddrescue sa bude zaoberať len chybnými sektormi. POZOR! V tomto konkrétnom prípade bežala operácia 13 DNÍ! Podarilo sa však znížiť množstvo chybných dát o 44 percent na 31MB. Pokiaľ na disku nemáte až tak dôležité dáta, môžete tento krok preskočiť.

7.

Máme vytvorený image/klon, je na čase ho opraviť. V prvom rade musíme vymazať údaje o chybných sektoroch, nakoľko na fungujúcom disku žiadne nemáme, no v tabuľke súborového systému zo zlyhaného disku sú. To isté platí pre image.

Klon:

sudo ntfsfix -b /dev/sdb

 

 

 

Image:

sudo ntfsfix -b /media/externy/image.img

 

 

 

8.

Môžme pristúpiť k oprave súborového systému. Môžte to nechať na Windows, ktorý pri štarte zistí, že sa jedná nekonzistentný disk a spustí CheckDisk, alebo to môžete urobiť priamo v Linuxe. Príkaz je rovnaký ako v kroku 7, akurát že vypustíte parameter -b.

9.

Ak ste robili image, môžete ho cez dd alebo ddrescue "napáliť" na nový disk podobným spôsobom:

sudo ddrescue --force /media/externy/image.img /dev/sda

 

 

 

Log už v tomto prípade nepotrebujete.

Záver

Ako dopadla oprava? Po vymazaní tabuľky s chybnými sektormi na klone som nechal disk opraviť Windowsom (chkdsk pri štarte), ktorý odhalil 12 chybných súborov, čo vzhľadom na to, že fotiek bolo na disku rádovo desaťtisíce, až tak nebolí. Taktiež bolo šťastím, že disk je ešte v záruke a kamarát dostane nový kus. Až na to, že neostane pri jednom, po tomto kikse si vytvorí RAID 1 pole.

(mapa vadných sektorov na poškodenom disku vizualizáciou logu z ddrescue programom ddrescueview)

Citlivé dáta si myslím by nemali byť uložené na tak veľkých diskoch bez redundancie. Moj známy mal v tomto prípade šťastie, ale pokiaľ by sa mu na disku napr. zasekla hlava, oprava by ho vyšla veľmi draho, drahšie než ďalší disk. Špecializované firmy si za opravy diskov nechajú naúčtovať slušné peniaze, začínajúce približne na cene nového disku. Pokiaľ máte veľmi citlivé dáta a chcete sa vyvarovať katastrofickému scenáru, kúpte si druhý disk a vytvorte si RAID 1 pole, kľudne aj v externom boxe. Osobne mám už 3 roky externý box a v ňom dva 1TB disky v RAID 1. Jednak nebežia keď nemusia a v prípade zlyhania jedného z diskov neprídem o dáta.

Jedná sa o Lian-li Ex-20, ku ktorému je dodávaný aj obslužný softvér, nie je problém cezeň napr. prestavať pole z konkrétneho disku. Na pravej fotografii je nový Silverstone (Teratrend) TS231U s USB 3.0 a eSATA rozhraním, ešte čaká na vnútornosti. Je to možno väčšia investícia, no jej hodnotu si uvedomíte v momente, kedy majú Vaše dáta na mále.

Čo na záver? V prvom rade, ZÁLOHUJTE. Nie vždy si môžeme pri zlyhaní disku poradiť sami, najmä pokiaľ došlo k prilepeniu hlavy k platni či k zlyhaniu elektroniky. Ako sa teda spávať k pevnému disku? Zabezpečte mu dostatok prievanu, čo najmenej vlhkosti a prašnosti, kvalitný zdroj, nevystavujte vibráciam a vyvarujte sa pádom. Ani tým sa však nevyvarute zlyhaniu u potenciálne chybného kusu z výroby, ktorý "ľahne" aj keby bol v ideálnom prostredí. SSD použivajte len na systém/hry/programy a zbytočnosti, na disky ukladajte postrádateľné veci typu filmy/MP3, na dôležité dáta si zaveďte diskové pole so zrkadlením (RAID 1/01/10/5 atď), či už interné alebo externé, prípadne si zaplaťte cloudovú službu.

Komentáre (12)
Broslowski
Skvelý článok, tlieskam!
Shatterhand
Ja len takú malú poznámočku - termín "plávajúca báza" sa (pokiaľ viem) nepoužíva, používa sa termín "plávajúce hradlo", aj keď v zásade slovo gate/base možno preložiť ako báza/hradlo. Technicky to však nie je správne, pretože báza alias base sa používa len pri určitom type tranzistora(nebudem to rozpitvávať), pri inom zasa gate. Ale inak klobúk dole za článok, muselo to zabrať dosť času naštudovať a tak jasne spracovať !
periodic
Pomocou akeho programu sa da zistit access time na jednotlive sektory (staci iba pri citani), ale pritom sa dal nastavit timeout, pokial ten cas presiahne mnou nastavenu hodnotu? Pri programe Victoria 4.46 vsetko ide, len nereaguje na mnou nastaveny timeout cas a stale sa snazi citat sektory, ktore maju pristup vacsi, alebo su poskodene, ze ich nevie precitat. Taka detekcia potom trva zbytocne dlhu dobu a pritom aj tak nepotrebujem vediet aky je cas pokial je vecsi ako mnou nastavena hodnota (pre mna pouzitelny cas je do 100 ms, ale program sa stale snazi citat sektory aj s niekolko sekundovym pristupom). Chcel by som si zistit este neposkodene casti (obsadit ich particiou) a tie este na nejaky cas pouzivat, ostatne poskodene casti a casti s horsou dobou pristupu by zostali neobsadene (nepouzivane).
Pjetro_de
Dovolim si oponovat v tom, ze RAID je naplast a riesi svetko zalohovanie. Neriesi. Zachrana dat z pokazeneho RAID pola (nie jednotliveho pokazeneho disku, ale celeho RAID pola) je ovela zlozitejsia ako zachrana dat na jednotlivom disku. Ak totiz zlyha SW obsluhujuci RAID, na diskoch su/budu necitatelne nezmysly. Ak zlyha HW (radic RAID pola), asi na tom nebudeme o nic lespie, ba este horsie. Chlapik v BA mi pri zachrane disku povedal, ze tam mava pravidelne placucich adminov, ktori si myslia, ze RAID je svatena voda, ktora vsetko riesi a velmi sa cuduju, ze ked cely RAID klakne, sanca na zachranu je milion-nasobne mensia ako pri jednotlivom HDD. Takze dovolim si poopravit, zalohovanie dnes vieme realizovat jedine kombinaciou tychchto faktorov: 1) Kopirovanim dat na novsie a novsie nosice - aj novsie generacie nosicov, pretoze tie zasratavaju jednak moralne a jednak fyzicky. Nikto neskusal precitat nieco po 500 rokoch, simulacie su na nic. Plati nepriama umera: cim viac dat, tym menej su trvacne. Ryhy na kosti vlka predstavuju zopar bajtov, ale vo volnej prirode prezili 50 tisic rokov. Hieroglyfy na egyptskych skalach (ci "kamenne" pisma inych civilizacii) predstavuju radovo kilobajty az desiatky kilobajtov a prezili 5 tisic rokov. Staroveke zvitky (knihy v staroveku neexistovali) predstavovali mozno uz niekolko desiatok kB ci radovo sto kB a prezili by tiez mozno tisicrocie (keby iní chuji nevypalili Alexandrijsku knihnicu). Knihy obsahujuce radovo stovky kB dat vydrzia storocia (potom sa bohuzial zacnu rozpadavat ako vsetko po istom case, treba kvalitny papier a specialne podmienky skladovania). Jednoducho ako pribuda kapacita, ubuda trvacnost. Dnesne 4 TB disky si istotne nezachovaju data 50 tisic, 5 tisic rokov, ani 500 ci 50 rokov ale blizsie realite je 5 rokov. Samozrejme pri zaobchadzani v kuravickach. 2) Nezavislou redundanciou dat. T.j. mat to na viacerych (dvoch-troch) miestach naraz. Ako som ale pisal vyssie, RAID nie je tento typ, pretoze tie disky nie su nezavisle. Riadi ich softver a hardver RAID pola a ked zlyha ovladanie RAID pola, data budeme tazko dolovat. Idealne je mat teda data na 2-3 diskoch UPLNE, SEPARATNYCH a teda nijako nezavislych. Samozrejme niekto moze vidiet problem, kto to tam bude stale kopirovat. Na to staci disky pripojit raz za den/tyzden/mesiac alebo ako casto chceme a pripravenym batakom si tam v noci (zakial budeme spinkat) natrieskat co chceme ...
nManJofo
Nie je RAID ako RAID samozrejme... pokial mi lahne radic na 5-kovom poli, tak je to pruser, ale u jednotky by to nemal byt problem, nakolko oba disky obsahuju rovnake data.
Pjetro_de
Samozrejme zalezi od RAIDu, sak ich je aj tucet druhov ... Jediny "neohrozeny" by teoreticky mohol byt ten jednoduchy mirroring (na ktory stacia 2 disky), resp. aj velke RAIDy obsahujuce v konecnom dosledku mirroring, aj ked na tom visi napr. 0 ci replikacia celeho pola. Vsetko ostatne co vobec neobsahuje mirroring je dost ohrozene najme 5 a 6. Je sice pekne ze pri 5tke (min 3 disky) moze zlyhat jeden lubovolny disk a pri 6tke (min 4 disky) mozu zlyhat lubovolne dva. Ked zlyha cely RAID, data na kazdom disku su uplne na prd.
Hiro
Ani ten nebude moc super. Staci nejaky vyboj ci skrat kde odidu oba disky naraz. Ja to riesim tak ze mam externy disk kde synchronizujem zalohu kazdy tyzden a inak je vypnuty, odlozeny.
felipe25
Napodobne, super clanok... Vecer vyskusam na dvoch kartach a jednom USB ktore mi uz rok potom co ich getdataback nevie rozchodit, a system ich detekuje.. snad pomoze :)
felipe25
Strana 5: "3.Nabootujte z USB kľúča, bude Vás čakať terminál. V prvom rade musíme disky v systéme identifikovať. K tomu slúži utilita fdisk. Do terminálu napíšte: " mam problem, po boote vidim akesi menu: 1. default 2. start/install ubuntu /myslimP. 3. boot from first harddrive atd.. co mam zvolit? vyskusal som 1 aj 2, no potom zacne len blikat kurzor... ak napisem : sudo fdisk -l nic sa nedeje.. ale ani nevidim ubuntu@ubuntu: ? Co s tym? Diky
nManJofo
Tam len hodit enter a to ubuntu by malo startovat
felipe25
Pytam sa dalej v sekcii vo fore: http://pretaktovanie.zoznam.sk/viewtopic.php?f=13&t=96090 Čítajte viac: http://pc.zoznam.sk/node/16349/talk#comment-50026#ixzz2fpppXac5
pauco
Musim napisat pochvalny koment. Clanok sa cita velmi dobre, ma to hlavu aj patu a na konci konkretny priklad, palec hore.
Pridať nový komentár
TOPlist