Developer(s) | Phillip Lougher, Robert Lougher |
---|---|
Introduced | 2002 with Linux |
Limits | |
Max volume size | 16 EiB (264) bytes |
Max file size | 16EiB (264) bytes |
Features | |
Attributes | POSIX andextended attributes |
Transparent compression | gzipLZMALZOLZMA2LZ4Zstd |
Other | |
Supported operating systems | Linux |
Website | github |
Squashfs is acompressed read-onlyfile system forLinux. Squashfs compressesfiles,inodes anddirectories, and supportsblock sizes from 4KiB up to 1MiB for greater compression. Several compression algorithms are supported. Squashfs is also the name offree software, licensed under theGPL, for accessing Squashfs filesystems.
Squashfs is intended for general read-only file-system use and in constrained block-devicememory systems (e.g.embedded systems) where lowoverhead is needed.
Squashfs is used by theLive CD versions ofArch Linux,Clonezilla,Debian,Fedora,Gentoo Linux,KDE neon,Kali Linux,Linux Mint,NixOS,Salix,Ubuntu,openSUSE and on embedded distributions such as theOpenWrt[1] andDD-WRTrouterfirmware. It is also used inChromecast,[2] inTiny Core Linux forpackaging extensions, and for the system partitions of someAndroid releases (Android Nougat).[3] It is often combined with aunion mount filesystem, such asUnionFS,OverlayFS, oraufs, to provide a read-write environment for live Linux distributions. This takes advantage of both Squashfs's high-speed compression abilities and the ability to alter the distribution while running it from a live CD. Distributions such asDebian Live,Mandriva One,Puppy Linux,Salix Live andSlax use this combination. TheAppImage project, which aims to create portable Linux applications, uses Squashfs for creating AppImages. Thesnap package system also uses Squashfs as its file container format.
Squashfs is also used byLinux Terminal Server Project andSplashtop. The toolsunsquashfs andmksquashfs have been ported toWindows 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, thebackward-compatibility code for older formats was removed. Since then the Squashfskernel-space code has been maintained in the Linux mainline tree, while theuser-space tools remain on the project'sGitHub page.[10]
The original version of Squashfs usedgzip compression, although Linux kernel 2.6.34 added support forLZMA[11] andLZO compression,[12] Linux kernel 2.6.38 added support forLZMA2 compression (which is used byxz),[13] Linux kernel 3.19 added support forLZ4 compression,[14] and Linux kernel 4.14 added support forZstandard compression.[15]
Linux kernel 2.6.35 added support forextended file attributes.[16]