1.1. Introduction
When creating tiny-sized and embedded Linux systems, every byte of the storage device (floppy, flash disk, etc.)
is very important, so compression is used everywhere possible. Also, compressed file systems are frequently needed
for archiving purposes. For huge public archives, as well as for personal media archives, this is essential.
SquashFS brings all this to a new level. It is a read-only file system that lets you compress whole file systems or
single directories, write them to other devices/partitions or to ordinary files, and then mount them directly (if
a device) or using a loopback device (if it is a file). The modular, compact system design of SquashFS is bliss.
For archiving purposes, SquashFS gives you a lot more flexibility and performance speed than a .tar.gz archive.
SquashFS is distributed as a Linux kernel source patch (which enables SquashFS read support in your kernel),
and the mksquashfs tool, which creates squashed file systems (in a file or on a block device).
The latest SquashFS release tree is 2.x, the former one was 1.x. This document
describes both these releases with proper notes given. For example, if some feature or
parameter is different in these release trees, it will be written as follows: new value
(2.x) or old value (1.x)
1.3. Making it clear
Now let's make sure any further discussions will be clearer
fro you to understand.
The procedure of getting SquashFS working, basically,
consists of the following steps:
- Patching and recompiling the target Linux kernel to enable SquashFS support
- Compiling the mksquashfstool
- Creating a compressed file system with mksquashfs
- Testing: mounting a squashed file system to a temporary location
- Modifying the /etc/fstabor startup scripts of
your target Linux system to mount the new squashed file system when needed