Miroslav Prýmek napsal/wrote, On 09/11/12 13:33:
S timhle mam problem. Nahraval bych tam totiz obsah, ktery je "pozadu"
za tim, ktery je necitelny

Spatna data nemuzou bejt horsi nez zadna.

bych mel potom uz problem zjistit, ktere soubory byly postizeny (z
necitelne oblasti se stane oblast citelna, ale s potencialne spatnymi
daty).

V tomhle pripade mozna - pokud chces zasazeny soubor hledat tak, ze je vsechny prectes a budes cekat cteni ktereho selze, pak ano, mas pravdu, to je lepsi nechat sektoru necitelne.

To je ale casove narocny takze s touto moznosti jsem nepocital, popisoval jsem ti jak zkratit vypadek na minimum.

Takze ja bych sektory co nejrychlejc uvedl do citelneho stavu - byt' s nespravnymi daty. Samozrejme, ze cisla "opravenych" sektoru bych si poznamenal ...

 At uz udelas A nebo B mel bys mit system v normalne pouzitelnem stavu, s
 vyjimkou nejvyse dvou souboru (videl jsem dve cteci chyby, pokud se najdou
 dalsi bude to cislo jine) s poskozenym obsahem

Da se na to opravdu ("relativne") spolehnout, ze to jsou jenom dva soubory?
(popr. metadata o dvou adresarich) Ta delka 131072 me trochu mate...

To byl pozadavek na cteni 256 po sobe jdoucich sektoru. Cislo sektoru je LBA prvniho z nich. Kdyby byly vadny fakt vsechny, mohla by jedna hlaska znamenat i vic nez jeden vadny sektor - pokud mas velikost fragmentu na FS 2kB mohlo by to, teoreticky, byt az 64 poskozenych souboru an kazdou takovouhle hlasku.

Jenze, to ze je poskozeno vsech 256 sektoru je tak nepravdepodobne, ze s tim ani nepocitam.Takze bych pomoci dd a puleni intervalu nasel ktere z tech 256 sektoru je vadnej opravdu. Prestoze by jich mohlo byt vic nez jeden, nejpravdepodobnejsi je prave jeden. A jeden sektor dvema souborum urcite nepatri. Takze ty dve chyby s vysokou pravdepodobnosti znamenaji skutecne jen dva poskozene soubory.

 Reknu ti co jsem v podobny situaci udelal (vadny sektor na disku, nikoliv
 vsak mirror). Ja jsem preinstaloval kompletne system vcetne portu - coz nic
 moc nestoji a lze to udelat prakticky za plneho provozu takze jsem mel
 jistotu, ze system a programy mam v poradku. Zustala sance, ze je poskozeny
 nejaky uzivatelsky soubor - a od toho jsou zalohy, ktere jest treba
 vytahnouti az se nejaky poskozeny soubor (zustal-li tam nejaky) najde.

Pro systemove soubory, co tam jsou/byly, mam SHA256 soucty, takze z
toho nervozni nejsem.

No, pro en je reinstalace systemu natolik rutinni zalezitost, ze bych z kontrolu checksumu proste vynechal a rovnou to prepsal. Stav to nezhorsi.

 Jo - neskodi se na vadny sektor a nejblizsi okoli kouknout. Pri trose stesti
 se z obsahu muze podarit odhalit o jaky soubor je - ani to nemusi bejt nutne
 soubor textovej.


Jakej je nejlepsi zposubo to udelat? Ty cisla co byly v logu muze
normalne pouzit pro dd
(dd if=/dev/ad6 skip=250051297280) nebo to musim zas nejak prepocitat?

Udaj o chybe (oznaceny LBA) je poradove cislo sektoru na celem fyzickem disku - tedy tom, co system vidi jako ad6

Pozor ale, ze udaej 'skip' a 'count' se udavaji v blocich. Takze zalezi na parametru bs - pokud je bs=512 pak muzes cislo pouzit rovnou (blok se rovna sektoru).

To bys ale musel ten prikaz zavolat 256x na kazdy sektor zvlast (a u druhe chyby zas).

Takze rychlejsi je puleni intervalu, kdy z toho 128kB necitelneho bloku prectes prvni a druhou pulku, podle vysledku pak dale pulis a tak dal az an uroven sektoru. To ale znamena, ze ve chvili, kdy na zacatku ctes blok velikost 64kB (bs=64k) musis hodnotu skip vydelit 128 (protoze 64k blok je 128x vetsi nez sektor). Pro jine velikosti bloku pak analogicky.

Dan







--
FreeBSD mailing list (users-l@freebsd.cz)
http://www.freebsd.cz/listserv/listinfo/users-l

Odpovedet emailem