Menu
Home Explore People Places Arts History Plants & Animals Science Life & Culture Technology
On this page
SquashFS
Compressed, read-only file system for Linux

Squashfs is a compressed read-only file system for Linux. Squashfs compresses files, inodes and directories, and supports block sizes from 4 KiB up to 1 MiB 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.

We don't have any images related to SquashFS yet.
We don't have any YouTube videos related to SquashFS yet.
We don't have any PDF documents related to SquashFS yet.
We don't have any Books related to SquashFS yet.
We don't have any archived web articles related to SquashFS yet.

Uses

Squashfs is used by the Live CD versions of Arch Linux, Clonezilla, Debian, Fedora, Gentoo Linux, KDE neon, Kali Linux, Linux Mint, NixOS, Salix, Ubuntu, openSUSE and on embedded distributions such as the OpenWrt1 and DD-WRT router firmware. It is also used in Chromecast,2 in Tiny Core Linux for packaging extensions, and for the system partitions of some Android releases (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 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. The AppImage project, which aims to create portable Linux applications, uses Squashfs for creating AppImages. The snap package system also uses Squashfs as its file container format.

Squashfs is also used by Linux Terminal Server Project and Splashtop. The tools unsquashfs and mksquashfs have been ported to Windows NT4Windows 8.1.5 7-Zip also supports Squashfs.6

History

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.89 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 GitHub page.10

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

Linux kernel 2.6.35 added support for extended file attributes.16

See also

  • Free and open-source software portal

References

  1. "The OpenWrt Flash Layout – OpenWrt Wiki". OpenWrt.org. 2018-06-07. Archived from the original on 2021-08-17. Retrieved 2018-06-11. https://openwrt.org/docs/techref/flash.layout#partitioning_of_the_flash

  2. "Exploitee.rs » Blog Archive » Chromecast: Exploiting the Newest Device By Google". Archived from the original on 2021-03-19. Retrieved 2021-03-07. https://blog.exploitee.rs/2013/chromecast-exploiting-the-newest-device-by-google/

  3. Amadeo, Ron (May 18, 2016). "Android N Borrows Chrome OS Code for 'Seamless' Update Installation". Ars Technica. Archived from the original on March 17, 2018. Retrieved June 15, 2017. https://arstechnica.com/gadgets/2016/05/android-n-borrows-chrome-os-code-for-seamless-update-installation/

  4. "Squashfs tools for Windows". Archived from the original on 2017-09-23. Retrieved 2017-09-22. http://www.slax.org/blog/482-Squashfs-tools-for-Windows

  5. "Squashfs Tools (Linux/Windows)" (in Dutch). Archived from the original on 2017-09-23. Retrieved 2017-09-22. http://domoticx.com/bestandssysteem-squashfs-tools-software/

  6. "7-Zip". www.7-zip.org. Archived from the original on 2006-05-12. Retrieved 2021-03-07. https://www.7-zip.org/

  7. "Squashfs CHANGES file". 2014-08-08. Archived from the original on 2020-04-22. Retrieved 19 April 2017. https://sourceforge.net/p/squashfs/code/ci/master/tree/CHANGES

  8. "Linux 2 6 29 -- Linux Kernel Newbies". Linux Kernel Newbies. 2009-06-10. Archived from the original on 2019-10-24. Retrieved 19 April 2017. https://kernelnewbies.org/Linux_2_6_29

  9. "Btrfs and Squashfs merged into Linux kernel - The H Open: News and Features". The H Open. 2009-01-10. Archived from the original on 2016-03-04. Retrieved 2017-04-19. http://www.h-online.com/open/news/item/Btrfs-and-Squashfs-merged-into-Linux-kernel-739613.html

  10. "Squashfs README file". GitHub. 2021-07-23. Archived from the original on 2021-07-23. Retrieved 23 July 2021. https://github.com/plougher/squashfs-tools/blob/master/README

  11. "Official Squashfs LZMA". Squashfs-LZMA.org. Archived from the original on 2012-10-29. Retrieved 2012-11-08. http://www.squashfs-lzma.org/

  12. "Linux 2 6 34 - Linux Kernel Newbies". KernelNewbies.org. Archived from the original on 2012-11-03. Retrieved 2012-11-08. http://kernelnewbies.org/Linux_2_6_34#head-35808ff36eeaca6084c79975a7d50263b726acc1

  13. "Linux 2 6 38 - Linux Kernel Newbies". KernelNewbies.org. Archived from the original on 2012-11-16. Retrieved 2012-11-08. http://kernelnewbies.org/Linux_2_6_38#head-1ca50229f5801418cffa063f800aae8b466f1c60

  14. Merge of LZ4 Squashfs support Archived 2020-07-23 at the Wayback Machine to Linus Torvalds tree. https://github.com/torvalds/linux/commit/7a02d089695a1217992434f03a78aa32bad85b5c

  15. "squashfs: Add zstd support · torvalds/linux@87bf54b". GitHub. Archived from the original on 2023-10-28. Retrieved 2018-04-15. https://github.com/torvalds/linux/commit/87bf54bb43ddd385d2538b777324bf737f243042

  16. "Linux 2 6 35 - Linux Kernel Newbies". KernelNewbies.org. Archived from the original on 2020-01-08. Retrieved 2012-11-08. http://kernelnewbies.org/Linux_2_6_35#head-7b60ef60876830625c37e8f1c24e460eebc418cc