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
--
FreeBSD mailing list (users-l@freebsd.cz)
http://www.freebsd.cz/listserv/listinfo/users-l