2010-05-10 12 views
5

(SquashFS es un sistema de archivos comprimido - http://en.wikipedia.org/wiki/SquashFS)la lectura de un archivo SquashFS

Busco una manera de leer un sistema de archivos SquashFS de un programa. Hasta ahora, sé sobre los controladores del kernel, pero estoy seguro de que una biblioteca de espacio de usuario debe existir en alguna parte. Cualquier idioma estaría bien, pero C es el preferido.

Simplemente montar el sistema de archivos y usarlo de esa manera es técnicamente posible, pero prefiero evitar esa ruta porque la aplicación que estoy buscando implicaría trabajar con al menos unas pocas docenas de archivos en un momento dado.

Respuesta

4

Acabo de descargar el código tarball de squashfs.sourceforce.net y no hay ningún código de núcleo allí. Solo código de usuario en C para mksquashfs y unsquashfs.

Probablemente puedas extraer el código de unsquashfs.

+0

Los controladores SquasFS ya están incorporados en el próximo 2.6.34 –

4

Hay una herramienta llamada unsquashfs que extrae la imagen de squashfs similar a tar. Cabe incluido con mksquashfs

0

mksquashfs y unsquashfs se empaquetan como "squashfs-herramientas" en mi sistema de Red Hat:

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

Squashfs es un sistema de archivos de sólo lectura altamente comprimido para Linux. Este paquete contiene las utilidades para manipular los sistemas de archivos 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 

ser advertidos de que aplastar y unsquashing son dolorosamente lento. Se necesitan varios minutos para que un script que escribí desactive, modifique y vuelva a aplicar un archivo 87M stage2.img 87M.

1

Tengo algo de código Ruby que va a hacer es: https://github.com/vasi/squash.rb

Es bastante duro, pero funciona bien. Tal vez algún día lo convierta en una biblioteca C mejor diseñada.

Cuestiones relacionadas