La lectura de un archivo SquashFS
Pregunta
(SquashFS es un sistema de ficheros comprimido - http://en.wikipedia.org/wiki/SquashFS)
Estoy buscando una manera de leer un sistema de archivos SquashFS de un programa. Hasta el momento, no tengo conocimiento acerca de las controladores del núcleo para ello, pero estoy seguro de que una biblioteca de espacio de usuario para ello debe existir en alguna parte. Cualquier lenguaje estaría bien, pero se prefiere C.
Sólo el montaje del sistema de archivos y el uso de esa manera es técnicamente posible, pero prefiero evitar esa ruta porque la aplicación que estoy mirando implicaría trabajar con al menos unas pocas docenas de archivos en cualquier momento dado.
Solución
Me acaba de descargar el paquete de archivos de código de squashfs.sourceforce.net y no hay ningún código del núcleo en ese país. Sólo código de espacio de usuario en C para mksquashfs
y unsquashfs
.
Probablemente se podría extraer el código de unsquashfs.
Otros consejos
Hay una herramienta llamada unsquashfs
que extrae la imagen squashfs similar a tar
. Cabe incluido con mksquashfs
Tengo algo de código Ruby que haré: https://github.com/vasi /squash.rb
Es bastante duro, pero funciona bien. Tal vez voy a convertirlo en un mejor diseñado biblioteca C algún día.
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 de sólo lectura altamente comprimido del sistema de ficheros de Linux. Este paquete contiene las utilidades para manipular squashfs sistemas de ficheros.
/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
Ten en cuenta que aplastamiento y unsquashing son dolorosamente lento. Se necesitan varios minutos para un guión que escribí a unsquash, modificar y volver a aplastar un archivo 87M stage2.img
.