En la línea de initrd, SquashFS se diseñó como un sistema de archivos genérico con compresión, para sistemas embebidos. Este sistema de archivos se ha hecho muy popular con la proliferación de LiveCDs, y se usa para almacenar el sistema Linux con todas las aplicaciones ya instalados, como si comprimiéramos el directorio raíz de un equipo ya instalado y configurado: Cuando la LiveCD! arranca e initrd lleva el kernel a memoria, monta este fichero squashFS en modo sólo lectura y se convierte en el directorio raíz del sistema, teniendo a partir de ese momento todas las aplicaciones disponibles.
Es posible que se nos despierte la curiosidad, y queramos husmear en el contenido de uno de estos archivos,
- Lo primero será crear un directorio temporal en el que copiar el contenido del fichero SquashFS
cd
mkdir squash_descomp - Luego, tendremos que montar el fichero SquashFS
mkdir /tmp/test.squash
mount -t squashfs -o loop filesystem.squashfs /tmp/test.squash - Para editar el contenido debemos copiarlo conservando permisos, en el directorio que creamos...
rsync -v -rlt -a /tmp/test.squash/ squash_descomp/
umount /tmp/test.squash/ - En el directorio squash_descomp, quedará el contenido del fichero SquasFS y ya podremos cambiar ficheros, permisos, añadir, etc. Cuando acabemos con ello, podremos volver a convertir en un fichero SquashFS mediante
cd squash_descomp
rm -f ../filesystem.squashfs
mksquashfs . ../filesystem.squashfs