Portál AbcLinuxu, 27. července 2025 17:37


Dotaz: nerovnaka komprimacia

6.6.2006 08:50 macrek | skóre: 12
nerovnaka komprimacia
Přečteno: 76×
Odpovědět | Admin
Nazdarek,

Mam takyto skript:
block_size=4955
target_file=file
app_script=app_script

sync
mke2fs -c /dev/ram $block_size
mount -t ext2 /dev/ram /mnt
cp -R root-fs/* /mnt/
umount /dev/ram
dd if=/dev/ram bs=1k count=$block_size of=ext2n
cp ext2n image
gzip -9v -f image
cp -f image.gz $target_file
sync
Problem je v tom, ze ked ho spustim prvykrat (po restarte compu) tak velkost $target_file je okolo 1,1MB (kompresia okolo 77%). Ale ked ho spustim druhykrat tak vysledny subor $target_file je velky uz okolo 1,3MB (kompresia okolo 71%). Potrebujem setrit miestom a 77%tna kompresia je este pripustna, kdezto 71%tna uz nie.

V com moze byt problem ? preco mi to raz skomprimuje tak, raz tak ? Tipujem, ze by mohol byt problem vo filesysteme, ktory vytvaram v /dev/ram, ale nexapem preco, kedze ho vytvaram nanovo.
An eye for an eye makes the whole world blind.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Heron avatar 6.6.2006 08:59 Heron | skóre: 53 | blog: root_at_heron | Olomouc
Rozbalit Rozbalit vše Re: nerovnaka komprimacia
Odpovědět | | Sbalit | Link | Blokovat | Admin
A nezmení se mezitím ten root-fs? Nepribudou tam nějaké logy atd?
Heron
6.6.2006 09:12 macrek | skóre: 12
Rozbalit Rozbalit vše Re: nerovnaka komprimacia
urcite nie... je to stale to iste..
prvy image po restarte je OK, ale dalsi je uz vacsi...
An eye for an eye makes the whole world blind.
6.6.2006 09:31 Zdenek Stryhal | skóre: 10 | blog: ZS
Rozbalit Rozbalit vše Re: nerovnaka komprimacia
Chci se ujistit, ze tomu dobre rozumim. Chces rict, ze prikaz:
gzip -9v -f image
dava spusten dvakrat pokazde jiny vysledek?
6.6.2006 09:34 macrek | skóre: 12
Rozbalit Rozbalit vše Re: nerovnaka komprimacia
nie tak celkom...
chcem povedat, ze ten skript hore dava stale rozny vysledok
prave testujem to, ci ten rozny vysledok dava gzip alebo nieco v skripte nad nim...
ale tipujem to prave na ten gzip, pretoze dd ma presne zadane kolko bytov ma preniest
An eye for an eye makes the whole world blind.
Heron avatar 6.6.2006 09:37 Heron | skóre: 53 | blog: root_at_heron | Olomouc
Rozbalit Rozbalit vše Re: nerovnaka komprimacia
gzip je deterministicky program, takze pokud dava ruzne vysledky, tak musi byt ruzny vstup. To že dd dává stejný počet bytů nic neznamená, záleží na jejich obsahu a ten bude pro oba případy různý.
Heron avatar 6.6.2006 09:44 Heron | skóre: 53 | blog: root_at_heron | Olomouc
Rozbalit Rozbalit vše Re: nerovnaka komprimacia
Odpovědět | | Sbalit | Link | Blokovat | Admin

Tipujem, ze by mohol byt problem vo filesysteme, ktory vytvaram v /dev/ram, ale nexapem preco, kedze ho vytvaram nanovo.

Tohle možná bude ten problém. Při vytváření se FS nemaže. Tedy předchozí byty tam fyzicky zůstanou (jen se vytvoří nové inody a bitmapy pro prázdný FS). Takže pro další komprimaci se sice vytvoří FS, ale image té partišny není stejný i když ten FS obsahuje stejná data.

Zkuste do toho skriptu vložit vymazání té partišny (dd z /dev/zero)

Heron
6.6.2006 10:07 macrek | skóre: 12
Rozbalit Rozbalit vše Re: nerovnaka komprimacia
jo, toto by mohlo pomoct..
aj ked momentalne nechapem, pretoze po tomto restarte to komprimuje stale rovnako. V tom sa determinizmus hlada dost tazko :) pretoze predtym (balim ten root-fs uz asi 30ty krat) s tym stale boli problemy. No nic, pridam tam vymazanie /dev/ram cez dd a uvidime ako sa to bude tvarit.
Zatial dakujem.
An eye for an eye makes the whole world blind.
6.6.2006 09:46 Luboš Luňák | skóre: 19 | blog: Seli
Rozbalit Rozbalit vše Re: nerovnaka komprimacia
Odpovědět | | Sbalit | Link | Blokovat | Admin
No jestli je potreba setrit mistem, tak proc gzip misto bzip2? Jinak ja bych na tom nevidel nic divneho, komprimace ruznych veci ma proste ruzne vysledky. Ten cp nema -p, takze se meni timestamps, stejne atime a ext2 bude mit urcite jeste nejake primo v sobe.
6.6.2006 09:55 macrek | skóre: 12
Rozbalit Rozbalit vše Re: nerovnaka komprimacia
Je to troxu komplikovanejsie, bzip2 tam nie je mozne pouzit, pretoze na systeme kde sa to rozbaluje bzip2 neexistuje. Je mi jasne, ze komprimacia roznych veci dava rozne vysledky, lenze /root-fs sa nemeni, a nemyslim, ze timestamps spravi rozdiel v komprimacii o 300kB.
An eye for an eye makes the whole world blind.
Heron avatar 6.6.2006 09:59 Heron | skóre: 53 | blog: root_at_heron | Olomouc
Rozbalit Rozbalit vše Re: nerovnaka komprimacia
Jak jsem psal, zkuste tam na začátek dát dd if=/dev/zero of=/dev/ram.
6.6.2006 09:58 jurko
Rozbalit Rozbalit vše Re: nerovnaka komprimacia
Odpovědět | | Sbalit | Link | Blokovat | Admin
presne tak, za riadok:
mke2fs -c /dev/ram $block_size
fuknut napr.:
dd if=/dev/zero of=/dev/ram bs=1k count=$block_size
(vid. napr. http://www.tldp.org/HOWTO/Bootdisk-HOWTO/buildroot.html)
6.6.2006 10:12 macrek | skóre: 12
Rozbalit Rozbalit vše Re: nerovnaka komprimacia
Jo, vyzera, ze to funguje, ze ma to nenapadlo :)
ten qju heron :)

akurat, to dd if=/dev/zero je potrebne dat nie za ale pred
mke2fs
alebo potom za:
dd if=/dev/ram bs=1k count=$block_size of=ext2n
An eye for an eye makes the whole world blind.
Heron avatar 6.6.2006 10:16 Heron | skóre: 53 | blog: root_at_heron | Olomouc
Rozbalit Rozbalit vše Re: nerovnaka komprimacia
Přicházíme sloužit :-D
[--Mr. Spock]
msk avatar 6.6.2006 10:42 msk | skóre: 27 | blog: msk
Rozbalit Rozbalit vše Re: nerovnaka komprimacia
Odpovědět | | Sbalit | Link | Blokovat | Admin
Daj si za to dd md5sum a uvidis ...
6.6.2006 20:25 macrek | skóre: 12
Rozbalit Rozbalit vše Re: nerovnaka komprimacia
jo.. porovnaval som to rucne, je tam rozdiel
An eye for an eye makes the whole world blind.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.