La pagina web di SquashFS è all'indirizzo http://squashfs.sourceforge.net/ - Si tratta di un changelog, che contiene le informazioni sull'ultimo rilascio del software ed informazioni generali su SquashFS. E' possibile ottenere l'ultima versione di SquashFS alla pagina web del progetto SquashFS su SourceForge.
SquashFS è anche disponibile con l'algoritmo di compressione Lempel-Ziv-Markov (LZMA) all'indirizzo http://www.squashfs-lzma.org/
Per la lettura del file system SquashFS, è necessario che esso sia supportato dal kernel - proprio come si trattasse di un file system reiserfs o ext3. Bisogna assicurarsi che vi sia una patch appropriata per la versione del kernel che si intende utilizzare nella sotto-directory kernel-patches/linux-2.x.y, all'interno della directory dei sorgenti di SquashFS. Inoltre, si ricordi che, nella maggior parte dei casi, saranno necessari i sorgenti del kernel Linux originale, a cui non siano state applicate patch, rilasciato da kernel.org. Se il codice sorgente del proprio kernel proviene da una distribuzione, potrebbe essere già stato modificato con le patch proprie della distribuzione e l'applicazione della patch di SquashFS quasi certamente non potrà funzionare, dato che le patch di SquashFS sono fatte per i kernel Linux originali. Tuttavia alcune distribuzioni rendono disponibili i moduli del kernel per SquashFS ed i relativi strumenti sotto forma di pacchetto nei repository. Se si pensa di utilizzare tali pacchetti, non sarà necessario applicare la patch di SquashFS al kernel e neppure compilare gli strumenti a partire dal codice sorgente. In tal caso, è comunque necessario assicurarsi di acquisire dalla distribuzione il modulo del kernel appropriato alla propria architettura. Si noti che, in questo modo, la procedura d'installazione è più semplice, ma non si ha alcun controllo sulla configurazione dei parametri del kernel, nel caso si voglia utilizzare SquashFS per scopi particolari (ad esempio per sistemi integrati).
Ottenuto il codice sorgente del kernel e la relativa patch per SquashFS, (si assuma che i sorgenti del kernel siano collocati nella directory /usr/src/linux e che il codice sorgente di SquashFS sia in /usr/src/SquashFS) tutto ciò che si deve fare è:
Portarsi nella directory dei sorgenti di SquashFS e copiare la patch per il kernel (assumendo che il nome del file sia SquashFS-patch) in /usr/src/linux.
bash# cd /usr/src/SquashFS bash# cp linux-2.x.y/SquashFS-patch /usr/src/linux
Portarsi nella directory dei sorgenti del kernel /usr/src/linux:
bash# cd /usr/src/linux
Nota: Le ulteriori procedure relative alla preparazione del kernel saranno tutte svolte all'interno di questa directory. I percorsi saranno quindi espressi relativamente a /usr/src/linux.
Ora, applicare la patch di SquashFS al codice sorgente del kernel:
bash# patch -p1 < SquashFS-patch
Pulire e preparare i sorgenti del kernel:
bash# make distclean bash# make mrproper
Configurare il kernel utilizzando il proprio metodo preferito (config/menuconfig/xconfig/gconfig):
bash# make menuconfig
Nella sezione"File systems", sotto-sezione "Miscellaneous file systems", abilitare l'opzione "Squashed file system", sotto forma di modulo o compilato nel kernel. E' obbligatorio compilare il supporto di SquashFS all'interno del kernel solo se si intende utilizzare ramdisk iniziali (initrd) compressi con SquashFS.
Nella stessa sotto-sezione NON si abiliti l'opzione "Additional option for memory-constrained system", a meno che non si stia configurando un kernel per un sistema integrato.
Nel caso si voglia utilizzare un ramdisk iniziale compresso con SquashFS, selezionare l'opzione "Initial RAM disk support" nella sotto-sezione "Block devices" della sezione "Device drivers".
Se si vuole eseguire il mount del file system SquashFS attraverso un dispositivo di loopback, abilitare il supporto "Loopback device support" nella sotto-sezione "Block devices" della sezione "Device drivers"
Ora si potrà compilare il kernel ed i moduli:
bash# make
Configurare il kernel:
bash# make menuconfig
Nella sezione "File systems" abilitare l'opzione "Squashed filesystem", sotto forma di modulo o compilandone il supporto nel kernel. E' obbligatorio compilare SquashFS all'interno del kernel solo se si intende utilizzare ramdisk inziali (initrd).
Nel caso si voglia utilizzare un ramdisk inziale, abilitare "Initial RAM disk support" nella sezione "Block devices".
Se si vuole eseguire il mount del file system SquashFS attraverso un dispositivo di loopback, abilitare " Loopback device support " nella sezione "Block devices ".
Ora è possibile compilare il kernel ed i moduli:
bash# make dep bash# make bzImage bash# make modules
E' giunto il momento di installare il nuovo kernel con il supporto di SquashFS. Le istruzioni sotto riportate serviranno ad installare ed avviare il kernel sulla macchina host. Si potrà volerlo installare e testare sul sistema di destinazione.
Si assume che il kernel sia stato compilato per una architettura x86, e che l'immagine compressa del kernel sia collocata nella sotto-directory arch/i386/boot/ della directory dei sorgenti del kernel. Ora, copiare il kernel nella directory /boot (se si vuole, rinominandolo bzImage-sqsh per convenienza):
bash# cp arch/i386/boot/bzImage /boot/bzImage-sqsh
Non dimenticare di installare i moduli del kernel se presenti:
bash# make modules_install
Modificare il file di configurazione del boot loader per includere il nuovo kernel ed installare (aggiornare) il boot loader. Ora è possibile riavviare con il nuovo kernel. Al riavvio verificare che tutto sia andato bene:
bash# cat /proc/filesystems
Oppure, se il supporto per SquashFS è stato compilato come modulo del kernel:
bash# insmod SquashFS bash# cat /proc/filesystems
Se è visibile la linea di SquashFS tra altri file system, significa che SquashFS è supportato correttamente dal proprio kernel.
Ora sarà necessario compilare mksquashfs - lo strumento per creare file system compressi e unsquashfs, che serve ad estrarre file da un file system SquashFS esistente.
bash# cd /usr/src/SquashFS/SquashFS-tools
Compilare ed installare gli strumenti:
bash# make bash# cp mkSquashFS /usr/sbin bash# cp unSquashFS /usr/sbin
Se tutto è andato bene, digitando mksquashfs oppure unsquashfs al prompt della shell, dovrebbe essere mostrato il messaggio di utilizzo.
Se si utilizza Debian (o un'altra distribuzione Linux) è possibile ottenere il modulo di SquashFS ed i relativi tool dai repository. Con Debian, si devono installare il modulo appropriato del kernel e gli strumenti di SquashFS con i seguenti comandi:
(Assumendo che la propria architettura sia x86)
bash# apt-get install SquashFS-modules-2.6-486 bash# apt-get install SquashFS-tools
Ora, caricare il modulo di SquashFS per il kernel Linux e se caricato in modo corretto, si dovrebbe poterlo trovare nel elenco relativo
bash# modprobe SquashFS bash# lsmod|grep squash squashfs 39620 0
Quindi, se è necessario caricare il modulo di SquashFS all'avvio del sistema, aggiungere la relativa voce al file /etc/modules
bash# echo squashfs >> /etc/modules
Notare che al momento della scrittura di questo HOWTO, i pacchetti Debian (Etch. 4.0 r2) sono relativi al rilascio 3.1 di SquashFS. Alcune opzioni e caratteristiche recenti della versione 3.3 del software possono non essere supporate. Si veda la sezione seguente per approfondimenti.