Newsgroup: it.comp.os.linux.iniziare
Titolo: gzip su fs in mini distribuzione

   Sto giocherellando con alcune  mini-distribuzioni  linux  su  1  o  2 
floppy, e non mi capacito su un comportamento strano.
Mi riferisco alla mini-distribuzione pocket linux.
   Dunque, ho scaricato l'immagine del  dischetto  dal  sito  originale, 
che funziona, ma io ho bisogno di apportare alcune modifiche.
   Il dischetto contiene un loader, un kernel, una  immagine  compressa 
della root (/) ed un file di configurazione.
Le mie operazioni:
Copio in /tmp l'immagine come disk2.
Faccio          mount -o rw,loop=/dev/loop0 disk2 /floppy
Ora ho un FS virtuale in /floppy.
Copio il fs compresso della root        cp /floppy/root /tmp/root_dir.gz
Smonto il floppy (umount /floppy, non lo disfo ;-))) )
Gunzippo /tmp/root_dir.gz che diventa ora /tmp/root_dir
Faccio          mount -o rw,loop=/dev/loop0 root_dir /floppy
Ora in /floppy ho il fs completo.
Elimino diversi files in /bin e li sostituisco con link simbolici.
   Elimino /bin/vi  (65k)  e  lo  sostituisco  con  l'editor  e3  (12k), 
mettendo un link vi -> e3.
Faccio un sync.
Gzippo          gzip -9 root_dir
   E mi ritrovo con  un  file  di  910k  contro  i  906k  originali,  in 
pratica, invece di diminuire e` aumentato di dimensioni,  ed  io  invece 
voglio che diminuisca!
   Se faccio gunzip, poi gzip -9 sul file originale, senza  modificarlo, 
ottengo la differenza di 1 solo byte, che puo` dipendere dalla  versione 
di compattatore usato, e comunque e` irrilevante.
-- 
Ho ricevuto per SMS, 3 chiavate da 3 numeri 899 (899004084, 899004080 e
899004006) per la modica cifra di 6 euro al minuto! Con Lola, di fronte
alla fiera, chiavo meglio, spendo meno e sopratutto, godo molto di piu'

 che funziona, ma io ho bisogno di apportare alcune modifiche.
[big_cut]
Non conosco la distribuzione in oggetto, ma la natura del probelma mi 
ricorda qualcosa che ho letto in qualche HOWTO.
Provo a fare un ragionamento passo-passo (sperando sia corretto... :p).
- Quando apporti dei cambiamenti al fs (come ridurne le dimensioni), lo 
spazio liberato non è nullo, ovvero nel fs i dati sono ancora presenti, 
solo che non sono resi accessibili dai descrittori (la tabella degli 
i-node);
- l'immagine montata sul loopdevice non cambia dimensione, così come la 
dimensione di una partizione non cambia se cambia il suo contenuto;
- il programma di compressione comprime *tutta* l'immagine, ergo anche i 
  byte residui dei file cancellati. Insomma, c'è un sacco di garbage che 
il programma di compressione inserisce nell'archivio compresso e che 
peggiora potenzialmente il fattore di compressione.
Una soluzione potrebbe essere quella di preparare un ramdisk di 
dimensioni sufficienti a contenere l'immagine, *riempirlo di zeri* con 
/dev/zero e copiarci dentro tutti i files del fs, poi comprimerlo.
In questo modo il fattore di compressione dovrebbe migliorare 
considerevolmente.
Chissà se funziona... :p
Ciao!
Enrico

  considerevolmente. 
   In effetti cio` che  dici  e`  logico.  Mi  era  venuto  un  sospetto 
simile, ma poi, non so perche`, non ci ho piu` pensato.
Ora provo.
   Strano pero`, avevo fatto in precedenza, la stessa cosa con  un'altro 
dischetto, e mi si e` ridotta al primo colpo.
Comunque grazie.
