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ě?

Našli jste v článku chybu?
Lupa.cz: Co vzal čas: internetové kavárny a herny

Co vzal čas: internetové kavárny a herny

Podnikatel.cz: Babiš bude mít přehled o vašich účtech

Babiš bude mít přehled o vašich účtech

Měšec.cz: Udali ho na nelegální software a přišla Policie

Udali ho na nelegální software a přišla Policie

Měšec.cz: Se stavebkem k soudu už (většinou) nemusíte

Se stavebkem k soudu už (většinou) nemusíte

120na80.cz: Kam umístit silikony?

Kam umístit silikony?

Lupa.cz: Kdo vykrádá LinkedIn? Zjistit to má soud

Kdo vykrádá LinkedIn? Zjistit to má soud

Měšec.cz: Kurzy platebních karet: vyplatí se platit? (TEST)

Kurzy platebních karet: vyplatí se platit? (TEST)

Podnikatel.cz: Pozor na vykuky, imitují služby České pošty

Pozor na vykuky, imitují služby České pošty

Měšec.cz: Ceny PHM v Evropě. Finty na úspory

Ceny PHM v Evropě. Finty na úspory

Podnikatel.cz: Kauza z Vinohrad pokračuje. Policie se omlouvá

Kauza z Vinohrad pokračuje. Policie se omlouvá

Lupa.cz: Elektronika tajemství zbavená. Jak s ní začít?

Elektronika tajemství zbavená. Jak s ní začít?

Vitalia.cz: Ženy, které milují příliš, jsou neštěstí

Ženy, které milují příliš, jsou neštěstí

Měšec.cz: Co s reklamací, když e-shop krachuje?

Co s reklamací, když e-shop krachuje?

Měšec.cz: TEST: Vyzkoušeli jsme pražské taxikáře

TEST: Vyzkoušeli jsme pražské taxikáře

Vitalia.cz: Je bílý kokos fakt tak úžasný? Ano, je!

Je bílý kokos fakt tak úžasný? Ano, je!

Podnikatel.cz: Česká pošta vycouvala ze služby ČP Cloud

Česká pošta vycouvala ze služby ČP Cloud

DigiZone.cz: Hodlá Markíza skončit v DVB-T?

Hodlá Markíza skončit v DVB-T?

Lupa.cz: Samořídicí taxíky jsou tu. Začíná s nimi Uber

Samořídicí taxíky jsou tu. Začíná s nimi Uber

Podnikatel.cz: OSA zdraží, ale taky přidá nový poplatek

OSA zdraží, ale taky přidá nový poplatek

Lupa.cz: Nechcete datacentrum? Jsou na prodej

Nechcete datacentrum? Jsou na prodej