obnova smazaneho (stale otevreneho) souboru

Miroslav Lachman 000.fbsd at quip.cz
Thu Apr 15 15:08:33 CEST 2010


Dan Lukes wrote:
> On 04/15/10 10:17, Dan Lukes:
>>> Sel jsem na to nasledovne:
>>> for blk in $blocks
>>> do
>>> blk=$(expr 4 \* $blk)
>>> dd if=/dev/mirror/gm0s1e of=/tmp/file-${blk}.blk skip=${blk} bs=512
>>> count=32
>>> dd if=/dev/mirror/gm0s1e skip=${blk} bs=512 count=32 >> /tmp/file.dump
>>> done
>
> Dole to mas trochu sofistikovanejsi (samo si to zjisti ty konstanty) a
> vyporada se to i se situaci, kdy je poslednim blokem fragment.
>
> Ale nepisu abych se chlubil ze umim psat scripty - prisel jsem pri tom
> na jedno varovani -
>
> 1. fsdb pracuje s tim co je ulozeno na disku
> 2. ne vsechno se uklada hned
>
> Pri psani toho scriptiku jsem si jim totiz vypisoval jeho sameho - a
> relativne casto se mi stavalo, ze fsdb nevypsal ZADNY blok. To proto, ze
> od posledni editace souboru jeste nebyly cache systemu zapsane na disk -
> a z pohledu dat uloznych na disku tomu souboru jeste zadny blok
> nenalezi. Takze - pred vypisem se rozhodne vyplati "syncnout" a ani to
> nemusi pomoci.

Diky. Je to vskutku trosku elegantnejsi a automatizovanejsi varianta, 
nez ta moje. Nicmene jak jsem zjistil, i moje varianta byla funkcni. 
Prectene direct + indirect bloky daly dohromady skutecne ten soubor 
(akorat ma na konci jeste nejake null bajty navic)

Celou dobu jsem se snazil vypatrat soubor, o kterem jsem si myslel, ze 
je smazany a on smazany nebyl ;o) (takze jsem si mohl usetrit spoustu 
prace, ale aspon jsem se zase naucil neco noveho a treba se to bude 
nekdy hodit)
Proste ten soubor byl nekde jinde, nez jsem myslel, ze by mel byt a 
fstat nevypisuje celou cestu k souboru. Kdyz jsem nainstaloval lsof, tak 
byla cela cesta odhalena a soubor na disku nalezen.

Diky tomu jsem tedy mohl porovnat skutecny soubor s tim, co jsem 
vydoloval pomoci fsdb a dd.

Zaroven jsem otestoval i icat ze SleuthKit nad image toho oddilu (pomoci 
dd) a nad tim image souborem icat funguje spolehlive. Moc mi nejde do 
hlavy, proc nelze pouzit i na disk. Nicmene jsem tedy dostal stejny 
soubor hned nekolika zpusoby, takze ted uz aspon vim, co kdy a jak pouzit.

Vysledkem pro me je ale dalsi neznama, kterou uz snad ani nebudu zkouset 
rozlustit - je to binarka a ne shellscript, takze zase nevim, co to 
vlastne presne dela. Vim jen to, ze se to snazi pripojovat na jeden 
server mnoha paralelnimi spojenimi a posilat velky objem dat. Pripada mi 
to, ze se "jen" nekdo snazil o flood na ten cilovy server. Ale jestli to 
dela i neco dalsiho, to uz asi nezjistim.

Kdyby mel o ten soubor (plus par dalsich, co jsem tam nasel) nejaky 
zvedavec zajem, mohu je poskytnout k analyze :)

Mirek


More information about the Users-l mailing list