obnova smazaneho (stale otevreneho) souboru

Dan Lukes dan at obluda.cz
Thu Apr 15 10:17:18 CEST 2010


On 04/15/10 01:04, Miroslav Lachman:
> S timhle "podezrelym" souborem mam ale trosku potiz, jelikoz to neni
> textovy soubor, tak nevim, jestli mam jeho obsah kompletni, nebo spis
> jestli jsem neprecetl vice bloku, nez bylo potreba.

Vic bloku asi ne, ale vic nez je v souboru skoro jiste ano. Problem je s 
neuplne zaplnenym poslednim blokem. Delku souboru sice vidis u inode ale 
nejasej - u otevreneho souboru neni jeste udaj aktualizovan. To znamena, 
ze tech 480872 nemusi mit s aktualni delkou mnoho spolecneho.

Nicmene, to by snad melo byt jedno - bud' dokazes pochopit co v souboru 
je, a pak ti patrne nebude to, ze za regulernim koncem mas nejake ty 
byte navic, vadit. Nebo nebudes tusit co ten obsah je - a pak ti to muze 
byt uz tuplem fuk.

> Sel jsem na to nasledovne:
> fsdb (inum: 1184376)> blocks
> Blocks for inode 1184376:
> Direct blocks:
> 4750080, 4750088, 4750096, 4750104, 4750112, 4750120, 4750128, 4750136,
> 4759880, 4759888, 4759896, 4759904
> Indirect blocks:
> 4759912, 4759920, 4759928, 4759936, 4759944, 4759952, 4759960, 4759968,
> 4759976, 4759984, 4759992, 4760000, 4760008, 4760016, 4760024, 4760032,
> 4760040,
> 4760048,

> 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
> ----------------------------------------------------------------------
>
> Puvodni fs block z fsdb je potreba nasobit 4, to pak odpovida pozici
> diskoveho bloku na disku.

> Mam ted tedy jednotlive 16kB soubory (myslim, ze to je velikost FS
> bloku, pokud se pletu, tak me opravte

32*512 je obvykla velikost bloku. A to nasobeni ctyrmi - 4*512 je zas 
patrne velikost fragmentu.

A jen takova drobnost, v tomto pripade - pokud misto
bs=512 count=32  pouzijes  bs=2k count=8

pak si cislo bloku nemusis predbezne nasobit - jen blokem pro dd nebude 
sektor ale fragment. Navic to druhe je i o neco rychlejsi (coz je u 
tveho souboru celkem jedno, u velkych souboru by ale byl rozdil v 
rychlosti zretelny)

> Ovsem nejsem si jist, jaky je vyznam "direct blocks" a jaky "indirect
> blocks".

Tak to bude nejlepsi podivat se treba sem:

http://docs.sun.com/app/docs/doc/817-5093/fsfilesysappx-23724?a=view

Tim se, mimochodem, vysvetluje, proc ti nic nerika obsah souboru - z 
toho cdo mas je jen 12 bloku obsah souboru. Ostatni jsou bloky 
obsahujici cisla dalsich bloku, ktere je treba take precist.

					Dan


More information about the Users-l mailing list