Poškozená data na paměťové kartě a jejich obnova

Petr Krčmář 24. 10. 2007

Už se vám to možná stalo: Přijedete z dovolené, celí natěšení zasunete paměťovou kartu do čtečky a ouha. Poškozený souborový systém vám zabrání přečíst obsah a cenné fotografie jsou tak zřejmě nenávratně ztraceny. Nemusíte si ale hned zoufat, existuje jednoduché a velmi účinné řešení, které je zachrání.

Kdy a proč?

Už se mi několikrát stalo, že mi některý šikovný známý vytrhl z počítače flashku bez odpojení. Uživatelé MS Windows obvykle ani netuší, že by měli něco takového dělat. Pokud ještě systém nedokončil zápis a nedostal souborový systém do konzistentního stavu, problém byl na světě.

Totéž se vám může stát i s paměťovou kartou, pokud je vytažena příliš brzy. I samotný fotoaparát může způsobit problém, pokud se například vybije v nesprávnou chvíli, kdy zrovna mění soubory na kartě.

Nemusí však dojít jen k softwarové chybě či selhání lidského faktoru, ale může dojít k poškození samotné karty v místě zápisu důležitých dat v souborovém systému – například FAT tabulky.

V každém případě se ovšem jedná o velký problém, který vám znemožní kartu připojit a získat z ní data. Přestože je většina softwarových potíží řešitelná vytvořením nového souborového systému, uživatele obvykle více zajímají data než samotná karta za pár stovek.

Co s tím?

Pokud opravdu už dojde k vážnému poškození souborového systému, nepodaří se obvykle kartu připojit. Ačkoliv je v systému fyzicky viditelná, jádro neumí pracovat s daty, která nemají předepsanou strukturu.

Obvykle dochází k poškození systémových částí karty jako je zmíněná FAT tabulka. Ačkoliv samotná data poškozená nejsou, jádro se k nim neumí dostat. Dodatečným „manuálním“ rozborem dat jsme ale schopni zachránit alespoň něco.

Samozřejmě bychom takovou akci mohli provést ručně sami, ale existují nástroje, které to udělají docela pohodlně za nás. Svou práci odvedou rychle, bez problému a ani nepotřebujeme mít potřebné znalosti.

Nejprve záloha

Než začnete s kartou pracovat, nejprve proveďte zálohu všech dat. Ideální je vytvořit kompletní obraz celé karty a s ním (na disku) pak pracovat. Jednak je to rychlejší, ale hlavně zabráníte zničení dat, pokud se něco nepovede.

Stačí tedy zavolat

$ dd if=/dev/sda of=karta.img

A ve zvoleném souboru (tedy karta.img) naleznete kompletní obsah vaší karty. Nad tím (respektive raději ještě jeho kopií) teď budeme pracovat.

Program photorec

Na samotnou obnovu použijeme program photorec. Ten je součástí balíku testdisk, který byste měli najít ve své distribuci (v Debianu je). Samotný balíček má několik set kilo a má jen málo závislostí.

Pokud jej v distribuci nenaleznete, chcete statickou verzi nebo verzi pro jiný systém, navštivte domovské stránky aplikace. Tam získáte balík pro DOS, MS Windows 9×, NT4/2000/XP/2003, Linux, FreeBSD, NetBSD, OpenBSD, Solaris, Mac OS X a samozřejmě také zdrojové kódy, které zkompilujete podle autorů téměř kdekoliv.

Jak to funguje

Program pracuje nad daty získanými z paměťové karty a vychází z toho, že je souborový systém poškozený. Proto jej rovnou ignoruje a v obrazu hledá hlavičky samotných souborů. Soubory JPEG mají na začátku sekvenci „JFIF“, v hlavičce PNG nalezneme znaky „PNG“ a podobně.

Photorec ovšem nezvládá jen obrázky, ale detekuje na 130 různých formátů. Jsou mezi nimi například kompresní archívy (gz, rar, tar, bz2, zip,…), multimediální soubory (mp3, avi, ogg, jpeg, png, gif,…), dokumenty (pdf, od*, doc, xls, rtf,…) a další (exe, html, py, rb,…). Kompletní seznam naleznete na domovské stránce.

Program při svém běhu počítá s tím, že data na kartě nejsou nijak fragmentována a nijak proto neřeší jejich strukturu. Fragmentace na běžné paměťové kartě z fotoaparátu není příliš běžná, většinou fotíme a pak jednorázově kartu zase smažeme. Program tedy jednoduše začne obraz disku prohledávat a pokud narazí na známou hlavičku, uloží obsah za ní do samostatného souboru.

Díky tomu není aplikace příliš závislá na použitém souborovém systému. Přestože budete zřejmě na paměťové kartě používat FAT, photorec si poradí i s Ext2/3, HFS+ a skrze knihovnu libntfs9 čte také NTFS.

Pouštíme photorec

Práce s programem je velmi jednoduchá. Pokud hodláme pracovat přímo s kartou, budeme potřebovat práva nejvyššího (tedy roota) a bude nám samozřejmě stačit sudo. Můžeme photorec buď spustit bez parametrů, kdy nám vyhledá dostupná zařízení a interaktivně nabídne jejich obnovu, nebo mu rovnou řekneme, kde má hledat.

Spustíme proto

$ photorec karta.img

Okamžitě dojde ke spuštění programu. Ten nám nabídne jednotlivé disky k obnově. V tomto případě je na výběr jen jedna položka. Vidíme cestu k ní a její celkovou velikost.

photorec1

Nyní můžeme pokračovat stiskem klávesy Enter. Program se dále ptá, jaký systém rozdělení disků karta používá.

photorec2

Pokud se jedná o klasickou paměťovou kartu, zřejmě zvolíte možnost Intel. Pokud byste měli uložený už konkrétní oddíl, třeba /dev/sda1, zvolte None. Pozor! I pokud máte na kartě jen jeden oddíl, obsahuje karta tabulku oddílů.

Následuje nalezení jednotlivých oddílů a vy máte možnost jeden z nich zvolit. V mém případě byl samozřejmě oddíl jen jeden.

photorec3

Protože se v mém případě jednalo o skutečně hodně poškozenou kartu, program nezjistil, jaký souborový systém obsahuje. Proto se ještě dotázal, zda náhodou neobsahuje Ext2/3. Odpověděl jsem, že ne, protože na kartě byl původně FAT.

photorec4

Poslední otázka směřuje na použitý adresář. Stačí stisknout Y a program začne svou činnost v aktuálním adresáři. V něm vytvoří podadresář recup_dir, do kterého bude ukládat soubory. Podle autorů nedochází k zásahům do originálních dat.

Výsledek? Vynikající!

Práce trvají v závislosti na velikosti obrazu i několik minut a aplikace sama vypisuje, jak dlouho pracuje, jak dlouho přibližně ještě pracovat bude a kolik souborů už obnovila.

photorec5

Použil jsem relativně malý (16 MB) testovací souborový systém s FAT, na který jsem nejprve nahrál 71 fotografií a pak nechal přepsat prvních několik kilobajtů náhodnými daty.

Program pracoval zcela bezchybně a obnovil všechny soubory. Kontrola MD5 součtů pak ukázala, že jsou všechny naprosto kompletní a ve zcela původním stavu. Z tohoto hlediska tedy photorec dostává jedničku.

Samozřejmě nedošlo k obnovení názvů souborů, které jsou součástí poškozeného souborového systému. Photorec tedy jednotlivé soubory pojmenuje čísly a dokonce jim přiřadí správnou příponu.

Závěrem

Výsledek byl v tomto případě stoprocentní, ale u konkrétních obnov samozřejmě záleží, co přesně bylo zasaženo. V každém případě máte šanci získat zpět alespoň podstatnou část dat, o která byste jinak přišli úplně. Přijdete tak o část svých šedivých vlasů a ještě budete mít veselou historku při prohlížení fotografií z dovolené.

Anketa

Přišli jste někdy o data na kartě?

Ohodnoťte jako ve škole:

Průměrná známka 2,78

Našli jste v článku chybu?
Zasílat nově přidané názory e-mailem
120na80.cz: Tady se vaří padělané léky

Tady se vaří padělané léky

DigiZone.cz: Konec geoblokace? Ani náhodou…

Konec geoblokace? Ani náhodou…

Lupa.cz: Jak EET vidí ajťák aneb Drahá vražda UX

Jak EET vidí ajťák aneb Drahá vražda UX

Vitalia.cz: Tři sta kilogramů tuňáka obsahovalo histamin

Tři sta kilogramů tuňáka obsahovalo histamin

120na80.cz: 5 triků, jak zastavit krvácení po holení

5 triků, jak zastavit krvácení po holení

DigiZone.cz: Mafra varuje před stíháním za pomluvu

Mafra varuje před stíháním za pomluvu

Podnikatel.cz: Když už je sexy, tak ať taky funguje

Když už je sexy, tak ať taky funguje

Podnikatel.cz: Myšlenky Henryho Forda. Berte je za své

Myšlenky Henryho Forda. Berte je za své

Vitalia.cz: Před, nebo po snídani? Kdy je lepší čistit si zuby

Před, nebo po snídani? Kdy je lepší čistit si zuby

120na80.cz: Co jí dělá? Sklerotizaci

Co jí dělá? Sklerotizaci

Podnikatel.cz: Proměny stavebnice Seva. Znáte ji?

Proměny stavebnice Seva. Znáte ji?

120na80.cz: Velký přehled: 7 očkování proti exotickým nemocem

Velký přehled: 7 očkování proti exotickým nemocem

120na80.cz: 10 dezinfekcí: Vede „starý dobrý“ peroxid

10 dezinfekcí: Vede „starý dobrý“ peroxid

DigiZone.cz: UPC umí televizi sedm dní nazpět

UPC umí televizi sedm dní nazpět

Vitalia.cz: 7 nemocí očí, které musíte léčit včas

7 nemocí očí, které musíte léčit včas

Vitalia.cz: Mražené ryby z Makra byly falšované

Mražené ryby z Makra byly falšované

Podnikatel.cz: Konečně vývar. Skoro jako od Steva Jobse

Konečně vývar. Skoro jako od Steva Jobse

Vitalia.cz: Tetanus v USA – i po odřeninách

Tetanus v USA – i po odřeninách

Root.cz: Zákon o hazardu je v rozporu s ústavou

Zákon o hazardu je v rozporu s ústavou

DigiZone.cz: Šlágr TV dostala pokutu 100 000 Kč

Šlágr TV dostala pokutu 100 000 Kč