>
Benvenuto/a su www.classicistranieri.com, la Biblioteca Multimediale Libera
SCEGLI LA SEZIONE CHE PREFERISCI:
[Il blog della biblioteca] [Le nostre pubblicazioni] [Magnatune MP3 Project] [Lirica MP3] [il DVD ROM della biblioteca]
[Letture Creative] [Musica Creativa] [GNUtemberg] [Appunti di informatica libera] [Portalinux]
[The "Punch Illustrated" Mirror] [PG-Historical Fiction Collection] [PG-Audiobook Collection] [Lethal]
[PG-Classicals of English Literature] [PG-Biblioteca Italiana] [PG-Bibliothèque Française]
[PG-Deutsche Bibliothek] [PG-Biblioteca Portuguesa] [PG-Biblioteca Española]
[PG-Illustrated Children Book Collection] [PG-CD ROM]
Se questi contenuti ti sono stati utili, prendi in considerazione la possibilità di effettuare una libera donazione alla biblioteca, in modo che possano continuare a essere gratuiti per tutti.
[successivo] [precedente] [inizio] [fine] [indice generale] [violazione GPL] [translators] [docinfo] [indice analitico] [volume] [parte]
In alcune situazioni può essere conveniente l'utilizzo di un file system compresso. Se il file system deve continuare a essere accessibile normalmente, è necessario utilizzare strumenti appositi, assieme a delle estensioni appropriate nel kernel per consentire l'accesso ai dati contenuti.
Una caratteristica comune dei file system compressi è la dimensione dei blocchi: solitamente a blocchi più grandi corrispondono prestazioni di compressione migliori. La tabella 69.1 riepiloga i valori che solitamente si possono utilizzare.
Tabella 69.1. Dimensioni tipiche dei blocchi di un file system compresso.
| 512*20 | 512 byte |
| 512*21 | 1 024 byte |
| 512*22 | 2 048 byte |
| 512*23 | 4 096 byte |
| 512*24 | 8 192 byte |
| 512*25 | 16 384 byte |
| 512*26 | 32 768 byte |
| 512*27 | 65 536 byte |
Con i sistemi GNU/Linux è possibile realizzare e accedere a un file system compresso denominato Cloop. (1) Il nome lascia intendere che si tratti di un file system contenuto in un file-immagine, compresso successivamente: Compressed loop.
La compressione è organizzata in blocchi, multipli di 512 byte; l'accesso a un file system Cloop avviene attraverso l'utilizzo di un modulo apposito del kernel (cloop.o), con il quale si rende disponibile poi un file di dispositivo che appare come quello di un file system normale, ma in sola lettura. Si osservi che per il momento, Cloop consente di accedere a un solo file system compresso per volta.
Per poter gestire un file system Cloop è necessario disporre degli strumenti necessari alla compressione ed eventualmente all'estrazione di un file-immagine Cloop, oltre al modulo compilato per il proprio kernel.
Per arrivare ad avere un file system compresso, la prima cosa da fare è realizzare il file-immagine di questo, cosa che di solito si fa con strumenti quali mkisofs o mkhybrid (capitolo 67), quindi si passa alla compressione usando normalmente create_compressed_fs secondo uno dei due schemi seguenti:
|
|
|
|
Il valore numerico che appare come secondo argomento di create_compressed_fs è la dimensione dei blocchi espressa in byte; generalmente si indica il valore massimo, pari a 65 536, per ottenere la compressione migliore. Dovrebbe essere possibile indicare valori da 512 a 65 536, secondo quanto riportato nella tabella 69.1.
L'esempio seguente mostra la creazione di un file system ISO 9660 con le estensioni Rock Ridge, a partire dal contenuto della directory /usr/, che viene compresso per generare il file usr.cloop:
# mkisofs -R /usr | create_compressed_fs - 65536 > usr.cloop[Invio]
Se per qualche ragione fosse necessario ricreare il file-immagine di partenza, si può usare extract_compressed_fs:
|
|
|
|
Per accedere al file system compresso senza estrarlo è necessario il modulo cloop.o, che deve essere stato compilato espressamente per il proprio tipo di kernel. La descrizione della procedura da seguire per questo è allegata ai sorgenti di Cloop e qui non viene descritta. Una volta installato correttamente il modulo (probabilmente è necessario avviare depmod -a per ricostruire le dipendenze tra i moduli), lo si deve caricare con l'indicazione contestuale del file contenente l'immagine compressa a cui si vuole accedere:
# modprobe cloop file=immagine_cloop
oppure:
# insmod cloop.o file=immagine_cloop
Se si omette l'indicazione dell'argomento file=..., si ottiene una segnalazione di errore e il modulo non viene caricato. Tornando all'esempio già visto, si potrebbe trattare del file usr.cloop collocato nella directory radice del file system in uso:
# modprobe cloop file=/usr.cloop[Invio]
cloop: Welcome to cloop v0.67 cloop: /usr.cloop: 12326 blocks, 65536 bytes/block, (segue) |
|
Si ricorda che si può accedere a un solo file system Cloop per volta. |
Dopo aver caricato il modulo si può accedere al file system come se questo fosse nella sua dimensione normale, non compresso, facendo riferimento a un file di dispositivo speciale, che di solito è meglio creare al volo:
# mknod /dev/cloop b 240 0[Invio]
Quando si ha la disponibilità del file di dispositivo /dev/cloop, si può montare il file system nel modo consueto:
|
|
Tornando all'esempio già visto, se il file system è di tipo ISO 9660 e contiene quanto deve trovarsi nella directory /usr/, si può usare il comando seguente:
# mount -o ro -t iso9660 /dev/cloop /usr[Invio]
Utilizzando un sistema con kernel Linux è disponibile anche il file system compresso Squashfs. (2) A differenza di Cloop, il file system ha caratteristiche proprie e non viene generato a partire da un altro tipo di file system. In pratica, il file system viene generato a partire dai dati da archiviare e non da un altro file system non compresso.
La creazione del file system avviene per mezzo del programma mksquashfs, che viene usato in uno dei due modi seguenti:
|
|
|
|
In generale, i percorsi indicati, che possono essere file o directory intere, vengono copiati all'interno del file-immagine indicato come ultimo argomento prima delle opzioni. Tuttavia, l'utilizzo di una o dell'altra forma cambia il modo di inserire i dati relativi nel file-immagine di destinazione: se si archivia una directory soltanto, sarà il suo contenuto ad apparire nella directory radice del file system che viene generato, mentre in presenza di più percorsi (riferiti indifferentemente a file o a directory), questi vengono riprodotti nella destinazione mantenendo l'ultimo nome del percorso di origine. In generale, anche se sembra difficile da descrivere, in pratica questo funzionamento è quello intuitivo; si osservino i due esempi seguenti:
# mksquashfs /usr/bin bin.sqsh
# mksquashfs /usr/bin /usr/sbin xbin.sqsh
Nel primo caso si ottiene il file bin.sqsh, contenente un file system di tipo squashfs in cui, a partire dalla directory radice si trovano subito i file eseguibili contenuti nella directory di origine; invece, nel secondo caso il file system contenuto in xbin.sqsh avrà le directory /bin/ e /sbin/.
Oltre all'opzione -e che si vede indicata alla fine della riga di comando, può essere utile l'opzione -b n, con cui si richiede espressamente l'utilizzo di blocchi di una certa dimensione. Il valore predefinito di questi blocchi è 32 768 e dovrebbe essere possibile usare blocchi da 512 a 65 536 secondo la scansione della tabella 69.1.
Per poter accedere a un file system di tipo Squashfs è necessario un kernel adatto, ma per questo potrebbe essere necessario modificare il sorgente del kernel attraverso un file di differenze. Quando il kernel è in grado di leggere il file system di tipo Squashfs, basta montarlo come se fosse un file-immagine normale:
# mount -o loop -o ro -t squashfs /usr.sqsh /usr
Come si può intuire, l'esempio mostra l'innesto del file system contenuto nel file-immagine /usr.sqsh a partire dalla directory /usr/.
Il file system compresso Cramfs, (3) per un kernel Linux, è molto simile per funzionamento a Squashfs, ma con qualche possibilità in meno; tuttavia rimane il primo a essere disponibile nel sorgente del kernel Linux senza bisogno di procurarsi file di differenze o moduli particolari. Anche in questo caso si comincia dalla creazione del file-immagine compresso, in modo simile a Squashfs, ma con il limite di una sola directory di origine:
|
|
Per montare il file-immagine si procede in modo simile a quanto già presentato con Squashfs:
|
|
Appunti di informatica libera 2003.06.29 --- Copyright © 2000-2003 Daniele Giacomini -- daniele @ swlibero.org
Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome file_nbsp_system_compressi.html
[successivo] [precedente] [inizio] [fine] [indice generale] [violazione GPL] [translators] [docinfo] [indice analitico]