Vlákno názorů k článku Poškozená data na paměťové kartě a jejich obnova od Tom - Mam 1 GB SD kartu. Niekde v strede...

  • Článek je starý, nové názory již nelze přidávat.
  • 25. 10. 2007 21:54

    Tom (neregistrovaný)
    Mam 1 GB SD kartu. Niekde v strede je 1/zopar vadnych blokov. FS je FAT koly fotaku. Je sposob, ako poskodene bloky najst a znefunkcnit, aby FS na nich nezapisoval?
    Ak totiz nahravam povedzme 10 minutove video a prekryje prave tieto poskodene bloky, tak video sa da prehrat iba po najblizsi vadny blok.
    Pripadne ak to nevie FAT, tak by som mohol kartu pouzivat uz iba v linuxe s nejakym inym FS.
    Diky
  • 26. 10. 2007 12:59

    alpha (neregistrovaný)
    FAT myslim zadne takove nastroje nema, ale mel by se o to starat radic flashky, jestli to nedela, tak nevim - leda zkusit do tech vadnych bloku "zapsat" nejaka data a tak ten fotak donutit je preskocit (zapsat = prepsat kus FAT tak, aby v tech sektorech opticky neco bylo, tohle myslim dela Windowsi chkdsk)
  • 26. 10. 2007 14:13

    Pavel Píša (neregistrovaný)
    FAT tabulka může označit clustery obsahující vadné bloky (kódy 0xFF7,
    0xFFF7 nebo 0x?FFFFFF7 pro FAT12, FAT16 respektive FAT32). Standardní
    DOSový či Win příkaz format volaný bez parametru /F celou užitou plochu
    média kontroluje a vadné bloky označí.

    http://en.wikipedia.org/wiki/File_Allocation_Table

    Pod Linuxem to přímo fdformat ani mkdosfs myslím neumožňuje. Je ale
    možné použít parametr -t u příkazu dosfsck, který zkontroluje čitelnost
    bloků a jim příslušející clustery označí za vadné.

    K hledání špatných bloků lze využít i příkaz badblocks, který umí i test
    se zápisem (nedestruktivní -n, destruktivní -w).

    Na magnetická média je to dostatečné. Bohužel na Flash disku to asi
    fungovat nebude, protože wear leveling má snahu využívat co nejvíce
    různých fyzických bloků a postupně na ně zapisované bloky mapuje.
    Na druhou stranu si kontrolér na kartě udržuje seznam vadných bloků.
    Ten není prázdný ani u převážné většiny nových výrobků. Když koupíte
    i samotný NAND Flash chip, tak má většinou již povícero bloků vadných
    a příslušně označených. Výrobce jen garantuje, že maximum vadných bloků
    je menší než nějaký počet, či procento.

    Pokud je tedy chyba na úrovni fyzického bloku tak je potřeba, aby se
    o vyloučení bloku z používání postaral již samotný kontrolér karty.
    Ten takto označí i bloky, ze kterých se sice data přečíst podařilo díky
    korekci chyb, ale vykazují tyto výpadky příliš často. Pokud to kontrolér
    neudělá, tak je buď vadný nebo mu již došla kapacita rezervních bloků.
    Co lze v takovém případě udělat nevím. Lze zkusit zmenšit velikost
    používané oblasti/partition. Ve skutečnosti by bylo potřeba zmenšit
    reportovanou kapacitu karty příslušnou parametrizací kontroléru.
    K tomu ale nástroje kromě výrobce karty dostupné nebudou.
  • 29. 10. 2007 3:17

    LO (neregistrovaný)
    Ona také chyba může být úplně jinde. Foťák může mít někde studeňák, a díky tomu čas od času zapsat nesprávná data. Ad absurdum může jít o závadu firmwaru, který po přetečení nějaké interní variable dělá neplechu. Třeba některé telefony po nějakém tom roku užívání mají hromadu dříve neviděných bugů, které zmizí resetem na tovární nastavení. Dalelo pravděpodobnější je ale špatný kontakt karty nebo baterií, koroze způsobená třeba mořskou vodou, atd. Jestli je karta opravdu vadná, to lze zjistit třeba zformátováním s ověřením bloků (ve Windows format /f), a použitím skriptu který cyklicky zapisuje na kartu a kontroluje výsledek. Osobně bych si vsadil spíše na chybu foťáku, než chybu karty, byť vyloučit nelze ani jedno.