SquashFS

Squashfs (. Sfs ) is a by Phillip Lougher developed, free (GPL ), compressed file system for GNU / Linux operating systems, which is read-only. Squashfs compresses both files, inodes and directories, and supports block sizes for greater compression up to 1 MiB. You can access it via a kernel module, as a Virtual File System.

Squashfs is intended as a universal, read-only filesystem, eg as an alternative to compressed directory structures (for example. Tar.gz archives ), or in applications where only a memory is low (eg in embedded systems ).

For data compression deflate ( zlib ) is used by default, which also provides support for the Lempel -Ziv - Markov algorithm ( LZMA ) is available, which allows substantially better compression ratios.

  • Squashfs stores the complete user and group identifier ( UID / GID ) and the time the file was created.
  • Theoretically files are supported up to 16 exabytes (bytes).
  • Inode and directory data are highly compressed. Each descriptor has this average a length of 8 bytes. The exact length varies with the type of file, eg directory, symbolic link, etc.
  • Squashfs can be used with block sizes up to 1 MiB (default 128KiB ). The larger the block size is chosen, the greater the compression rate.
  • Files that are multiple times, are stored only once.
  • There are big- and little-endian architectures supported.

There is a set of tools that squashfs-tools, which contain, among other mksquashfs (to create a file system ) and unsquashfs to squashfs.

Squashfs is often used along with unionfs to temporarily get write access to files.

OpenSUSE used from the beta version 1 of openSUSE 10.3 squashfs file system for the installation system.

History

On 23 October 2002, the first version (1.0) was released. With version 3.3 the efficient treatment of sparse files has been added. After the squashfs - developers had already made ​​several efforts to the recording of the file system in the Linux kernel, version 4 of the squashfs codes finally stopped in the published on March 23, 2009 Version 2.6.29 of the kernel catchment, after Linus Torvalds due spoke of the widespread use of this. Currently version 4.2 is integrated by 28 February 2011 and as of version 2.6.29 of the Linux kernel.

18777
de