SquashFS
From Wikipedia, the free encyclopedia
Squashfs (.sfs) is a free (GPL) compressed read-only file system for the Linux kernel. Squashfs compresses files, inodes and directories, and supports block sizes up to 64K for greater compression.
Squashfs is intended for general read-only file system use, for archival use (i.e. in cases where a tar file may be used), and in constrained block device/memory systems (e.g. embedded systems) where low overhead is needed.
[edit] Overview
- Data, inodes and directories are compressed.
- Squashfs stores full uid/gids (32 bits), and file creation time.
- Files up to 16EiB (2^64 bytes) are theoretically supported. Filesystems can be up to 2^64 bytes.
- Inode and directory data are highly compacted, and packed on byte boundaries. Each compressed inode is on average 8 bytes in length (the exact length varies on file type, i.e. regular file, directory, symbolic link, and block/char device inodes have different sizes).
- Squashfs can use block sizes up to 64K (the default size is 64K). Using 64K blocks achieves greater compression ratios than the normal 4K block size.
- File duplicates are detected and removed.
- Both big and little endian architectures are supported. The mksquashfs program can generate filesystems for different endian architectures for cases where the host byte ordering is different to the target. This is useful for embedded systems.
[edit] See also
- Cramfs is another read-only compressed file system
- zisofs is a transparent compression extension to the ISO 9660 file system
- Cloop is a compressed loopback device module for the Linux kernel
- e2compr is an extension to the ext2 file system driver in the Linux kernel to support online compression
- Cromfs is an efficient read-only filesystem for Linux in user-space using FUSE
- http://www.squashfs-lzma.org/ has the patches for LZMA to achieve higher compression Vs Zlib