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