From Wikipedia, the free encyclopedia
Jump to: navigation, search
Developer(s) Phillip Lougher, Robert Lougher
Introduced 2002 with Linux
Max. volume size 16 EiB (264) bytes
Max. file size 16 EiB (264) bytes
Attributes POSIX and extended attributes
Transparent compression gzip LZMA LZO LZMA2 LZ4
Supported operating systems Linux
Website squashfs.sourceforge.net

Squashfs is a compressed read-only file system for Linux. Squashfs compresses files, inodes and directories, and supports block sizes up to 1 MB for greater compression. Several compression algorithms are supported. Squashfs is also the name of free software, licensed under the GPL, for accessing Squashfs filesystems.

Squashfs is intended for general read-only file-system use and in constrained block-device memory systems (e.g. embedded systems) where low overhead is needed.


Squashfs is used by the Live CD versions of Arch Linux, Debian, Fedora, Gentoo Linux, Linux Mint, Salix, Ubuntu and on embedded distributions such as the OpenWrt[1] and DD-WRT router firmware. It is also used in Chromecast [2] and for the system partitions of Android Nougat.[3] It is often combined with a union mount filesystem, such as UnionFS, OverlayFS, or aufs, to provide a read-write environment for live Linux distributions. This takes advantage of both the Squashfs's high speed compression abilities and the ability to alter the distribution while running it from a live CD. Distributions such as Debian Live, Mandriva One, Puppy Linux, Salix Live and Slax use this combination.

Squashfs is also used by Linux Terminal Server Project and Splashtop. The tools unsquashfs and mksquashfs have been ported to Windows NT[4] - Windows 8.1.[5] 7-Zip also supports Squashfs.[6]


Squashfs was initially maintained as an out-of-tree Linux patch. The initial version 1.0 was released on 23 October 2002.[7] In 2009 Squashfs was merged into Linux mainline as part of Linux 2.6.29.[8][9] In that process, the backward-compatibility code for older formats was removed. Since then the Squashfs kernel space code has been maintained in the Linux mainline tree, while the user space tools remain on the project's Sourceforge page.[10]

The original version of Squashfs used gzip compression, although Linux kernel 2.6.34 added support for LZMA[11] and LZO compression,[12] Linux kernel 2.6.38 added support for LZMA2 compression (which is used by xz),[13] and Linux kernel 3.19 added support for LZ4 compression.[14]

Linux kernel 2.6.35 added support for extended file attributes.[15]

See also[edit]


  1. ^ "The OpenWrt Flash Layout - OpenWrt Wiki". Wiki.OpenWRT.org. 2012-08-25. Retrieved 2012-11-08. 
  2. ^ http://blog.gtvhacker.com/2013/chromecast-exploiting-the-newest-device-by-google/
  3. ^ https://arstechnica.com/gadgets/2016/05/android-n-borrows-chrome-os-code-for-seamless-update-installation/
  4. ^ "Squashfs tools for Windows". Retrieved 2017-09-22. 
  5. ^ "Squashfs Tools (Linux/Windows)" (in Dutch). Retrieved 2017-09-22. 
  6. ^ http://www.7-zip.org/
  7. ^ "Squashfs CHANGES file". 2014-08-08. Retrieved 19 April 2017. 
  8. ^ "Linux 2 6 29 -- Linux Kernel Newbies". Linux Kernel Newbies. 2009-06-10. Retrieved 19 April 2017. 
  9. ^ "Btrfs and Squashfs merged into Linux kernel - The H Open: News and Features". The H Open. 2009-01-10. Retrieved 2017-04-19. 
  10. ^ "Squashfs README file". 2014-05-05. Retrieved 19 April 2017. 
  11. ^ "Official Squashfs LZMA". Squashfs-LZMA.org. Retrieved 2012-11-08. 
  12. ^ "Linux 2 6 34 - Linux Kernel Newbies". KernelNewbies.org. Retrieved 2012-11-08. 
  13. ^ "Linux 2 6 38 - Linux Kernel Newbies". KernelNewbies.org. Retrieved 2012-11-08. 
  14. ^ Merge of LZ4 Squashfs support to Linus Torvalds tree.
  15. ^ "Linux 2 6 35 - Linux Kernel Newbies". KernelNewbies.org. Retrieved 2012-11-08. 

External links[edit]