# [Howto] & [Tip] come ti faccio entrare il portage in 19M

## darkimage

ATTENZIONE : Questo metodo è da ritenersi *sperimentale* e solo per utenti esperti che sanno cosa stanno facendo  :Evil or Very Mad:  , non voglio tornare responsabile per eventuali problemi  :Evil or Very Mad:  

vi siete mai accorti che la ${PORTDIR} in una reiserFS supera i 300M?

se non ci credete:

```
# cd /usr/portage && du -sh --exclude=distfiles
```

ma io grazie a squashfs ho la ${PORTDIR} montata in loopback in questo file:

```
# ls -l /root/portage

-rwx------  1 root root 19316736 29 giu 15:01 /root/portage
```

*** come potete vedere sono 19M  :Smile:  ***

dopo di questo vorrei motivare il mio lavoro prima di esporlo:

questo sistema ovviamente non serve al desktop user, ma potrebbe tornare utile su quei pc poco dotati di hard disk dove anche 300mb sono "oro". Per non parlare della possibilità di tenersi il beneamato portage su di una penna usb  :Wink:  o di altre idee geniali che ora non mi vengono in mente  :Embarassed:  .

ora veniamo al metodo:

l'idea è quella di un mount in loopback compresso, il kernel non offre nulla a questo fine, e per questo ringraziamo i sviluppatori del filesystem squashFS che permette di montare partizioni compresse preparate con "mksquashfs", il programma base che crea da semplici directory e con grande semplicità un file di uscita (compresso) che poi sarà montato.

 *Sparker wrote:*   

> NOTA: la patch per squashfs del gentoo-dev-sources-2.6.7-r6 è la versione 1.3. I file creati con gli squashfs-tools versione 2.0_alpha NON funzionano con questa patch, è necessario utilizzare la versione stabile (la 1.3 appunto)

 

iniziamo con emergere sys-fs/squashfs-tools:

*** per i kernel 2.6+ è consigliabile la versione 2.0 che anche se ancora in versione alpha supporta tali kernel ***

*** io ho un kernel 2.6.7-gentoo-r5 patchato per squashfs con la 2.0 e non sembra essere instabile, anzi  :Cool:  ***

```
# emerge -av squashfs-tools
```

questo vi fornisce la compilazione del tool di base "mksquashfs" ma non ancora il supporto del kernel  :Confused: 

per patchare il kernel:

```
# ebuild /usr/portage/sys-fs/squashfs-tools/squashfs-tools-2.0_alpha.ebuild unpack
```

***oppure, se state usando la versione stable***

```
# ebuild /usr/portage/sys-fs/squashfs-tools/squashfs-tools-1.3.ebuild unpack
```

-----entrate nella vostra dir del kernel:

```
# cd /usr/src/linux
```

-----e patchate così:

```
# patch -p1 < /var/tmp/portage/squashfs-tools-2.0_alpha/work/squashfs2.0/[VERSIONE PIÙ VICINA AL VOSTRO KERNEL]
```

***io ho usato 2.6.6 per il 2.6.7 e non ci sono stati problemi***

-----compilare come modulo il supporto a squashfs:

```
# make menuconfig
```

***è situata in file system/misc. filesystem nel 2.6***

-----compilate il nuovo modulo così:

```
# make modules modules_install && modules-update
```

***ora è tutto pronto per usare squashfs  :Wink: 

da qui in giù c'è il metodo per sostituire la directory del portage in questo mount compresso.

-----editare make.conf

# nano /etc/make.conf

aggiungete queste 2 rige:

DISTDIR=/usr/distfiles

PKGDIR=/usr/packages

***siccome squashfs è read-only i distfiles vanno scaricati fuori dalla directory "/usr/portage"

-----creare il portage compresso con mksquashfs:

```
# mksquashfs /usr/portage/ /root/portage -e distfiles packages
```

la sintassi è semplice: directory da comprimere, destinazione, directory o file da escludere

-----muovere l'attuale /usr/portage/ altrove per sicurezza:

```
# mv /usr/portage/ /root/portagebackup/
```

-----ricreare la directory portage

```
# mkdir /usr/portage
```

-----e finalmente montare il filesystem di squashfs in questo modo:

```
# mount /root/portage /usr/portage -o loop -t squashfs
```

editare /etc/fstab aggiungendo la seguente riga:

```
/root/portage           /usr/portage    squashfs        loop                    0 0
```

info @ http://squashfs.sourceforge.net/

ENJOY!  :Twisted Evil:  (thanks to Sparker)

----------

## fedeliallalinea

Ottimo tip quello che mi serviva proprio adesso grande. Tips award  :Cool:  .

PS: per ogni punto non potresti usare un po' di bbcode cosi' almeno resta piu' chiaro?

----------

## randomaze

Domanda:

Perché squashFS e non gcloop?

/EDIT: Comunque ottimo tip, magari spiega che il FS é read-only quindi ogni volta che si vuol fare il sync bisogna ripetere il procedimento  :Wink: 

----------

## darkimage

 *randomaze wrote:*   

> Domanda:
> 
> Perché squashFS e non gcloop?
> 
> /EDIT: Comunque ottimo tip, magari spiega che il FS é read-only quindi ogni volta che si vuol fare il sync bisogna ripetere il procedimento 

 

squashfs è più semplice da gestire per un utilizzo di questo tipo... con un comando si crea il file da usare per il mount  :Wink: 

per l'emerge stavo pensando già di creare uno scriptino... che fà le seguenti operazioni...

***copia l'attuale portage in una directory temporanea che chiamerà "portemp"

***esegue l'emerge sync con la variabile $PORTDIR che punta a "portemp"

***umount di squashfs

***ri-creazione della squashfs da "portemp"

***elimina "portemp"

***mount di squashfs

che ne dici?  :Wink: 

----------

## fedeliallalinea

 *darkimage wrote:*   

> che ne dici? 

 

Che e' un'ottima idea

----------

## darkimage

 *fedeliallalinea wrote:*   

>  *darkimage wrote:*   che ne dici?  
> 
> Che e' un'ottima idea

 

fonderiadigitale... lui potrebbe aiutarmi, non sono molto espert in bash scripting, di certo se non trovo nessuno che mi aiuta imparero  :Twisted Evil: 

----------

## randomaze

 *darkimage wrote:*   

> fonderiadigitale... lui potrebbe aiutarmi, non sono molto espert in bash scripting, di certo se non trovo nessuno che mi aiuta imparero 

 

Tu inizia lo script... se hai domande fai pure  :Wink: 

----------

## Sparker

Bellissimo!!!

Peccato il problema read-only.

Domanda semi-ot:

Ho due pc, A e B.

Faccio il sync sul pc A, comprimo il portage e lo copio sul pc B.

Ovviamente la cache di portage del pc B non viene aggiornata.

Per aggiornarla devo per forza usare "emerge regen" oppure posso copiarla in qualche modo dal pc A?

----------

## Sparker

 *Quote:*   

> gentoo-dev-sources-2.6.7-r6 (24 Jun 2004)
> 
>   +gentoo-dev-sources-2.6.7-r6.ebuild:
> 
>   added squashfs to close bug #54884
> ...

 

----------

## darkimage

 *Sparker wrote:*   

>  *Quote:*   gentoo-dev-sources-2.6.7-r6 (24 Jun 2004)
> 
>   +gentoo-dev-sources-2.6.7-r6.ebuild:
> 
>   added squashfs to close bug #54884
> ...

 

alla gentoo mi leggono nel pensiero ?  :Very Happy: 

grazie dell'informazione

----------

## federico

Devo provarlo e appena ho due minuti provo anche ad automatizzarlo...

Oltre che sui pc con poche disponibilita', a me sinceramente scoccia perdere 300 mega a per la portage dir...

----------

## Sparker

E' una stupidaggine, ma c'è un errore:

 *darkimage wrote:*   

> 
> 
> -----creare il portage compresso con mksquashfs:
> 
> ```
> ...

 

deve essere /usr/portage/

----------

## darkimage

 *Sparker wrote:*   

> E' una stupidaggine, ma c'è un errore:
> 
>  *darkimage wrote:*   
> 
> -----creare il portage compresso con mksquashfs:
> ...

 

grazie infinite  :Wink: 

correggo subito!  :Smile: 

----------

## federico

Causa esami in uni nn ho ancora avuto il tempo di testare ma mi e' venuto un dubbio.. In termini di velocita' come si pone questo sistema?

----------

## randomaze

 *federico wrote:*   

> In termini di velocita' come si pone questo sistema?

 

In teoria dovrebbe essere un degrado a causa della decompressione e un guadagno grazie al ridotto accesso al disco. Quindi tutto dipende dall'efficenza dello squashFS

Certo si potrebbe provare a mettere il file compresso su un ramdisk per vedere che succede  :Wink: 

----------

## darkimage

 *federico wrote:*   

> Causa esami in uni nn ho ancora avuto il tempo di testare ma mi e' venuto un dubbio.. In termini di velocita' come si pone questo sistema?

 

velocità per accedere a dei file piccolo come sono gli ebuild?

se prima ci mettevi 3 millesimi di secondo ora ce ne metti 4  :Confused: 

----------

## darkimage

qualcuno è intenzionato a tradurre l'Howto in inglese?  :Rolling Eyes: 

----------

## federico

Accedere a 4kb di ebuild e' un conto, ma fare un'operazione di ricerca?

L'emerge -s sul mio sistema e' lungi da dare risposta nel termine di pochissimi attimi...

----------

## darkimage

 *federico wrote:*   

> Accedere a 4kb di ebuild e' un conto, ma fare un'operazione di ricerca?
> 
> L'emerge -s sul mio sistema e' lungi da dare risposta nel termine di pochissimi attimi...

 

 :Shocked:  l'emerge -s e -S và molto più veloce!!!  :Shocked: 

----------

## Sparker

 *darkimage wrote:*   

> 
> 
>  l'emerge -s e -S và molto più veloce!!! 

 

Prevedibile. Invece di scansionare 10.000 files per 300Mb ne scansiona 1 da 20. Buona parte dell'overhead dovuto all'hd viene eliminato e rimane solo lavoro di CPU.

Update: contrariamente alla mia supposizione un test con emerge -S gentoolkit ha riportato 2m44s per squashfs contro 2m26s per il portage classico.

Ho utilizzato squashfs 1.3 per il motivo spiegato nel prossimo post, mi riservo di fare dei test con la versione 2.0Last edited by Sparker on Wed Jun 30, 2004 8:18 pm; edited 3 times in total

----------

## Sparker

NOTA: la patch per squashfs del gentoo-dev-sources-2.6.7-r6 è la versione 1.3. I file creati con gli squashfs-tools versione 2.0_alpha NON funzionano con questa patch, è necessario utilizzare la versione stabile (la 1.3 appunto)

(oppure patchare con la 2.0 il kernel, ma non ho voglia  :Smile:  )

----------

## darkimage

aggiungo al howto  :Smile: 

----------

## FonderiaDigitale

eccomi, se ti serve aiuto di pure (visto che mi hai cercato per nome  :Smile: ).

Bell'idea, non ci avevo pensato.. qualcuno puo fare una prova con un file loop ma non compresso, per vedere le prestazioni in relazione a questo?

----------

## FonderiaDigitale

 *darkimage wrote:*   

>  *federico wrote:*   Accedere a 4kb di ebuild e' un conto, ma fare un'operazione di ricerca?
> 
> L'emerge -s sul mio sistema e' lungi da dare risposta nel termine di pochissimi attimi... 
> 
>  l'emerge -s e -S và molto più veloce!!! 

 

esearch in questo aiuta molto.

----------

## -Zigulì-

Un salutone a tutti!

Volevo complimentarmi con darkimage per il suo ottimo suggerimento, che fa decisamente al mio caso...   :Very Happy: 

Preciso che sono piuttosto niubbo di linux e che questo è il mio primo post  (il primo post non si scorda mai   :Mr. Green: )

Parlavate di script in questa discussione, ma non avendone visti, ne ho scritto uno a manina manella .

Inutile dire che la limitazione è di avere almeno 300MB di spazio libero(almeno temporaneamente).

E' rozzo, ma funzionale.

Personalmente l'ho piazzato in crontab, ma ognuno è libero di farci quello che vuole!

Update-compress-portage-script

```
#!/bin/bash

# oppure /usr/local/bin/bash

 CREATED=24/08/2004

MODIFIED=25/08/2004

MODIFIED=26/08/2004

MODIFIED=27/08/2004

MODIFIED=30/08/2004

MODIFIED=31/08/2004

MODIFIED=01/09/2004

VERSION=9

AUTHOR='Matteo'

## VARIABILI - Settaggio dei percorsi

PORT_TEMP=/usr/portemp

PORT_DIR=/usr/portage

FILE_COMP=/usr/portage.gz

LOG=/var/log/portage.log

cat /dev/null > $LOG

SILENT=0

MOUNT=`mount | grep "$FILE_COMP" | head -n 1 | awk '{print $1}'`

versione() {

echo "Update compress portage script version is $VERSION"

}

errore() {

echo -e "$@: option not found.

Please check the command syntax or try to digit --help for some useful information\n"

}

informazione() {

echo -e "\nDescriptive part not yet implemented\n"

sleep 1

}

aiuto() {

echo -e "\n^[[01m:: UPDATE PORTAGE - Help summary - ($MODIFIED)^[[00m [ $AUTHOR ]

Bash script

Usage: check-antivirus [ -h | -i | -s | -d | -v ]

 -h --help         show this help

 -i --information  show some information about this script

 -s --silent       no output on standard output

 -v --version      show the version of this script\n"

}

commento(){

if [ $SILENT -eq 0 ] ; then 

  echo -n "^[[01;32m*^[[00m $1" 

  fi

}

fatto(){

if [ $SILENT -eq 0 ] ; then 

  echo '...done'

  fi

}

main(){

## PREDISPOSIZIONE ALL'AGGIORNAMENTO - viene ripristinata la situazione "normale"

commento 'Creazione directory temporanea'

if [ ! -e $PORT_TEMP ] ; then 

  mkdir $PORT_TEMP

    else

    rm -r $PORT_TEMP/* &> /dev/null

  fi

fatto

commento 'Copia file di portage in una cartella temporanea'

if [ ! -e $PORT_DIR ] ; then 

  cp -rp $PORT_DIR/* $PORT_TEMP

  fi

fatto

commento 'Smontaggio della directory compressa'

while [ ! -z $MOUNT ] ; do

  umount $PORT_DIR

  MOUNT=`mount | grep "$FILE_COMP" | head -n 1 | awk '{print $1}'`

  done

fatto

commento 'Eliminazione cartella portage e file compressi'

if [ -e $PORT_DIR ] ; then 

  rm -r $PORT_DIR

  fi

if [ -e $FILE_COMP ] ; then 

  rm $FILE_COMP

  fi

fatto

mv $PORT_TEMP $PORT_DIR

## AGGIORNAMENTO DI PORTAGE

commento 'Aggiornamento di portage'

echo -e "\n\n\n### AGGIORNAMENTO DI PORTAGE" >> $LOG

emerge sync >> $LOG 2>&1

fatto

## CREAZIONE DIRECTORY COMPRESSA

commento 'Creazione directory compressa'

echo -e "\n\n\n### CREAZIONE DIRECTORY COMPRESSA" >> $LOG

mksquashfs $PORT_DIR $FILE_COMP -noappend -no-duplicates -e distfiles packages >> $LOG

fatto

commento 'Eliminazione cartella portage non compressa'

if [ `ls $PORT_DIR | wc -l` -gt 0 ] ; then

  rm -r $PORT_DIR/*

  fi

fatto

## MOUNT DELLA DIRECTORY

commento 'Montaggio della cartella compressa'

mount $FILE_COMP $PORT_DIR -o loop -t squashfs

fatto

}

## MENU' DI SCELTA

case ${1:-'main'} in

 '--help'       | '-h' ) aiuto ;;

 '--version'    | '-v' ) versione ;;

 '--information'| '-i' ) informazione ;;

 '--silent'     | '-s' ) SILENT=1 ; main ;;

 'main' ) main ;;

 * ) errore $@ ;; 

esac
```

----------

## FonderiaDigitale

 *-Zigulì- wrote:*   

> 
> 
> Parlavate di script in questa discussione, ma non avendone visti, ne ho scritto uno a manina manella .

 

ogni volta che posti del codice ricordati di inserirlo nel tag 

```
[code]

bla bla

.........

............

[/code]
```

per cui ti consiglio di editare il tuo post e includerli. grazie

----------

## randomaze

 *FonderiaDigitale wrote:*   

> per cui ti consiglio di editare il tuo post e includerli. grazie

 

Beh prima di cazziarlo il benvenuto potevi darglielo  :Rolling Eyes: 

Lo faccio io adesso: Benvenuto  :Very Happy: 

----------

## tuxer

grazie mille dell'ottimo tip, l'ho appena testato sul portatile!

però mi sfugge qualcosa, scusate la domanda stronza ma una volta sqeezato il portage posso ancora fare emerge sync??

nella pratica ho visto che non posso più farlo, poi mi sono ricordato che squashfs è read only e mi sono spiegato tutto...

ma allora come lo fate l'emerge sync?

----------

## randomaze

 *tuxer wrote:*   

> ma allora come lo fate l'emerge sync?

 

Lo rimetti su un filesystem normale, fai il sync, poi lo risqueezi

----------

## richard77

Ho fatto una prova copiando il portage (escluso distfiles e packages) in un'altra directory e poi sostituendo i file nella directory originale con symlink alla seconda. 

Ovvero, se /tmp/portage_squash è la copia senza distfiles e packages:

```
 

root@portage#pwd

/tmp/portage

root@portage#find -type l -exec ln -sf /tmp/portage_squash/{} {} \;

root@portage#du -sh /tmp/portage

1.1M 

```

Ho fatto la prova su /tmp/portage per sicurezza. (ovviamente non contiene distfiles e packages).

In questo modo /tmp/portage è scrivibile per aggiunta e rimozione dei file (NON per modifica dei file esistenti). Forse bisognerebbe escludere anche la directory metadata.

Qualcuno che conosce meglio il portage sa se è aggiornato solo per aggiunta/rimozione di files?

Più tardi proverò con il portage vero.

Attendo vostri commenti.

federico

----------

## mouser

Interessante, anche se credo che comunque le modifiche allo "squashfs editabile" che sei riuscito ad ottenere siano assolutamente temporanee ed abbiano vita finche' la ram non viene cancellata; questo perche' se anche inganni emerge facendolo girare in una finta dir (aka simlink a un readonly-fs), comunque si continua a scrivere su un fs readonly.

In any case (select case), credo che il sync di portage sia un'operazione di semplice aggiunta/rimozione di files .ebuild e directory... mi sembra troppo oneroso in tempi di esecuzione una modifica all'interno degli ebuild. Insomma emerge credo che dica:

 *emerge wrote:*   

> 
> 
> E' cambiato l'ebuild???? Vabbe', tanto sono meno di 4kb. Lo cancello e lo riscarico, tanto il tipo dall'altra parte che pigia i tastini mica se ne accorge 
> 
> 

 

Comunque ottima idea

mouser  :Wink: 

----------

## maranik

Ragazzi su reiser4 il portage occupa:

```

maranik  # cd /usr/portage && du -sh --exclude=distfiles

117M 
```

son ben 200 MB in meno rispetto a reiserfs 3.6   :Shocked: 

----------

## mouser

Cosi' tanto mi sembra un po' strano (a meno che reiser4 non gestisca dei cluster piu' piccoli sul disco.... ma poi, linux in genere, non era esente dalle porcate-cluster di altri os?)

Comunque, la prova ideale sarebbe fare un emerge sync su 2 pc lo stesso giorno, uno con r4 l'altro con r3.6 e vedere le differenze

Ciriciao

mouser  :Wink: 

----------

## richard77

@mouser: Veramente il filesystem modificato è quello sul reiserfs, sul squashfs ci sono solo i files.

I files (ebuild e altro) sul reiserfs sono link simbolici ai file sullo squashfs.

Se l'emerge sync aggiunge o cancella files lo fa sul reiserfs.

Ogni tanto bisognerebbe ricreare lo squashfs con i nuovi file aggiornati.

Spero ora di essere stato più chiaro.

----------

## mouser

@richard77: scusa scusa, ho fatto la gaff   :Embarassed: 

Avevo capito che andavi a montare l'immagine di squashfs in /tmp/portage_squash e poi andavi a creare /usr/portage che in realta' e' un symlink a /tmp/portage_squash

```

# ln -s /tmp/portage_squash /usr/portage

```

 :Rolling Eyes: 

... sto lavorando troppo  :Laughing:  ...

mouser  :Wink: 

----------

## Dhaki

Anche a me con reiser4

```
emo@Beatrice /usr/portage $ cd /usr/portage && du -sh --exclude=distfiles --exclude=packages

116M
```

Invece con un ext3 sul server ottengo

```
emiliano@Lothlorien portage $ cd /usr/portage && du -sh --exclude=distfiles --exclude=packages

443M
```

 :Shocked:  A me sembra molto improbabile

----------

## gutter

Non essere tanto sorpreso.

I sync risalgono alla stessa giornata?

----------

## randomaze

 *mouser wrote:*   

> ma poi, linux in genere, non era esente dalle porcate-cluster di altri os?

 

Le "porcate di altri OS" suppongo si tratti di windows che usa/usava come dimensione minima del cluster 16k (o 32?).

Il cluster é indispensabile per indirizzare correttamente i dati sull'HD, poi ci sono OS nei quali si puó indicare la dimensione al momento della formattazionne ed altri dove non si puó.

Se non ricordo male ReiserFS4 utilizza un meccansimo particolare per "ottimizzare" i cluster e ficcare due file in un cluster.

----------

## FonderiaDigitale

 *Dhaki wrote:*   

> Anche a me con reiser4
> 
> ```
> emo@Beatrice /usr/portage $ cd /usr/portage && du -sh --exclude=distfiles --exclude=packages
> 
> ...

 

no e' probabile. ext3 salva molti piu metadati di reiser4, e i file sono tanti, anche se piccoli.

----------

## FonderiaDigitale

 *randomaze wrote:*   

>  *FonderiaDigitale wrote:*   per cui ti consiglio di editare il tuo post e includerli. grazie 
> 
> Beh prima di cazziarlo il benvenuto potevi darglielo 
> 
> 

 

c'hai ragione. perdono; sono pur sempre cinghiale toscano TM doc  :Razz: 

----------

## xchris

Propongo un TIP per chi usa ext3 o un qualunque file-system che non e' ottimizzato per piccoli file.Non e' la scoperta dell'acqua calda!

E' una semplice conseguenza di quello detto poco fa.

E' molto utile per chi non usa portage regolarmente. (tipico di chi magari ha una connessione molto lenta) se si vogliono raggiungere i 38mb.

Se invece anche 130 mb sono un buon risultato per voi....allora e' utilizzabile da chiunque.

Avere il portage in 38MB in un file compresso - modificabile dopo lo scompattamento. (durante l'utilizzo sale pero' a 130MB circa)

Requisiti: avere un kernel che supporta reiser4 e le utility corrispondenti.

(emerge -s reiser4progs)

1 - Creare il file di supporto.

```

dd if=/dev/zero of=/usr/portage.fs count=130 bs=1024k

```

2 - Creare un fs reiser4 su questo file

```

root@lyra usr # mkfs.reiser4 -f /usr/portage.fs

mkfs.reiser4 1.0.3

Copyright (C) 2001, 2002, 2003, 2004 by Hans Reiser, licensing governed by reiser4progs/COPYING.

Block size 4096 will be used.

Linux 2.6.10-rc1-mm4 is detected.

Uuid 601e5618-175a-44c0-a2db-f8225ec0679f will be used.

Reiser4 is going to be created on portage.sfs.

(Yes/No): y

Creating reiser4 on portage.sfs ... done

```

3 - Montiamo il nuovo file in loop

```

mount -o loop portage.sfs /usr/portage

```

A questo punto qualunque sync salvera' nel nostro file.

Sfruttando le buoni doti  di reiser4 con i file piccoli in 130MB abbiamo portage read/write.

A questo punto se contiamo di non lavorare + con portage lo possiamo comprimere fino al prossimo utilizzo.

```

umount /usr/portage

bzip2 /usr/portage.fs

```

Ottimo!Abbiamo portage in 38mb.

Problemi: portage non e' accessibile quando compresso 

Soluzione: se serve solo per le ricerche utilizziamo un utility come eix che usa una sua cache.

se invece dobbiamo lavorare proprio su portage...dobbiamo tenerlo non compresso.

Siamo comunque passati da 443mb (se si usa ext3) a 130mb (anche meno - al momento in cui scrivo)

Nota:Durante la prima prova e' consigliabile spostare /usr/portage originale in /usr/portage2 e salvare i file nel nuovo /usr/portage

----------

## mouser

 *randomaze wrote:*   

>  *mouser wrote:*   ma poi, linux in genere, non era esente dalle porcate-cluster di altri os? 
> 
> Le "porcate di altri OS" suppongo si tratti di windows che usa/usava come dimensione minima del cluster 16k (o 32?).
> 
> Il cluster é indispensabile per indirizzare correttamente i dati sull'HD, poi ci sono OS nei quali si puó indicare la dimensione al momento della formattazionne ed altri dove non si puó.
> ...

 

Si, non ho specificato poiche' non conoscevo se altri OS utilizzassero la stessa logica... dopo la tua spiegazione mi sembra di capire che tutti i fs utilizzano una gestione cluster, quindi chiedo venia per la vaccata scritta sopra.

A titolo informativo, con FAT32 (su NTFS non mi e' capitato di fare abbastanza prova) il cluster occupa 16k se la partizione non supera i 4,2GB di grandezza, altrimenti occupa 32k.

Ciriciao

mouser  :Wink: 

----------

## TwoMinds

 *FonderiaDigitale wrote:*   

>  *Dhaki wrote:*   Anche a me con reiser4
> 
> ```
> emo@Beatrice /usr/portage $ cd /usr/portage && du -sh --exclude=distfiles --exclude=packages
> 
> ...

 

...non ero sceso nei particolari ma il merito dovrebbe essere dei dancing tree... reiser4 per /usr/portage da qualche mese...

----------

## btbbass

Ciao, xcris, ho provato il tuo tip per far stare portage in un reiser 4, ma nn riesco a farlo funzionare..

premetto di aver appena ricompilato il kernel 2.6.10-r6 con la patch per reiser4, e di aver seguito le tue istruzioni...

il risultato passo-passo è:

1) al primo passo tutto bene, mi crea il file 

```

/usr/portage.fs

```

2) Il secondo passo nn mi da errori, se nn per il fatto che l'operazione èimmediata, e nn mi da la sensazione che sul file scriva nulla...magari è giusto così...

3)Il terzo passo credo contenga un errore, nel senso che devospecificare la path del file creato, cioè

```
mount -o loop /usr/portage.fs /usr/portage
```

e non

```

mount -o loop portage.sfs /usr/portage

```

a questo punto mi dice:

```

ioctl: LOOP_CLR_FD: Device or resource busy

mount: you must specify the filesystem type

```

e basta... dove sbaglio?

grazie

----------

## btbbass

ops, ho controllato meglio e sono un cretino... ho messo il supporto per reiser4 come modulo, ma sefaccio 

```
 

modprobe reiser4 

```

 mi da un messaggio di errore.. cmq ora sto ricompilando con il supporto integrato...

----------

## btbbass

ok, ho risolto compilando nel kernel... senti, un'ultima domanda: nn ho seguito il tuo consiglio di copiare il portage in un'altra diectory (era dopo e nn l'ho visto  :Embarassed:   ) 

che fine fanno i file che erano presenti nella cartella di portage? sono ancora sull'hard disk [credo di si]

se provo a smontare il 

```
 /usr/portage.fs 
```

, in

```

/usr/portage 

```

 nn compaiono i file che dovrebbero ancora essere su ext3...

----------

## btbbass

Ahhrg ho riavviato e adesso quando do un 

```

mount -o loop /usr/portage.fs /usr/portage

```

 mi dice

```

ioctl: LOOP_CLR_FD: Device or resource busy

mount: /dev/loop1: can't read superblock

```

Aiuto!

----------

## btbbass

Praticamente mi sto rispondendo da solo... risolto formattando di nuovo il file e ricopiandoci su il portage.. speriamo funzioni di nuovo al prosimo riavvio..

Ho notato una cosa: l'emerge search è molto veloce,  quasi in linea coi tempi di un esearch, mentre l'emerge searchdesc è lentiiiiiiissssssiiiimooo... come mai?

Un'ultima cosa: per far partire la partizione all'avvio, cosa si deve mettere nell'fstab? Non so dove mettere l'opzione loop...  :Embarassed: 

----------

## xchris

emerge -S e' comunque lentissimo.

Ti consiglio vivamente eix  :Wink: 

sinceramente in questo momento non mi viene come montarlo da fstab in loop.

Prometto che ci guardero'  :Smile: 

eventualmente lo puoi montare da local.start.

(che vista la delicatezza di reiser4 mi sembra meglio)

ciao

----------

## btbbass

ok, grazie, proverò subito...

Il problema con emerge -S (--searchdesc) è che dopo 7 mn e mezzo l'aver dato 

```

emerge -S desktop

```

(la prima cosa che mi è venuta in mente) nn aveva ancoar finito... controllerò meglio

Ciao, e buona domenica

----------

## xchris

per montare il file basta mettere nelle opzioni di fstab "loop"

ciao

----------

## oRDeX

ragà una domanda, in termini di prestazioni com'è la situazione?

mi riferisco alla velocità di emerge -s , emerge -pv ecc..

----------

