2010-05-10 13 views
5

(SquashFS è un file system compresso - http://en.wikipedia.org/wiki/SquashFS)La lettura di un archivio SquashFS

Sto cercando un modo per leggere un file system SquashFS da un programma. Finora, sono a conoscenza dei driver interni al kernel, ma sono sicuro che una libreria per lo spazio utente deve esistere da qualche parte. Qualsiasi linguaggio andrebbe bene, ma C è preferito.

Il semplice montaggio del filesystem e il suo utilizzo in quel modo è tecnicamente possibile, ma preferirei evitare quella via perché l'applicazione che sto guardando implicherebbe il lavoro con almeno una dozzina di archivi in ​​un dato momento.

risposta

4

Ho appena scaricato il codice tarball da squashfs.sourceforce.net e non c'è il codice del kernel in là. Solo il codice in C per userland mksquashfs e unsquashfs.

Probabilmente si potrebbe estrarre il codice da unsquashfs.

+0

I driver SquasFS sono già mainlined nella presto per essere 2.6.34 –

4

C'è uno strumento chiamato unsquashfs che estrae l'immagine squashfs simile a tar. Dovrebbe essere fornito in bundle con mksquashfs

0

mksquashfs e unsquashfs sono confezionati come "squashfs-tools" sul mio sistema Red Hat:

Name  : squashfs-tools 
Group  : System Environment/Base 
Size  : 160923 
URL   : http://squashfs.sf.net 
Summary  : squashfs utilities 
Description :

Squashfs è un altamente compresso file system in sola lettura per Linux. Questo pacchetto contiene le utilità per la manipolazione dei filesystem squashfs.

/sbin/mksquashfs 
/usr/sbin/unsquashfs 
/usr/share/doc/squashfs-tools-3.0 
/usr/share/doc/squashfs-tools-3.0/ACKNOWLEDGEMENTS 
/usr/share/doc/squashfs-tools-3.0/CHANGES 
/usr/share/doc/squashfs-tools-3.0/COPYING 
/usr/share/doc/squashfs-tools-3.0/PERFORMANCE.README 
/usr/share/doc/squashfs-tools-3.0/README 

Sappiate che schiacciamento e unsquashing sono dolorosamente lenti. Sono necessari alcuni minuti per uno script che ho scritto per disincastrare, modificare e ri-squash di un file 87M stage2.img.

1

Ho un po 'di codice ruby ​​che farò: https://github.com/vasi/squash.rb

E' piuttosto dura, ma funziona bene. Forse lo trasformerò in una libreria C meglio progettata un giorno.

Problemi correlati