Squashfs

From Just Solve the File Format Problem
(Difference between revisions)
Jump to: navigation, search
(FormatInfo template: Added developed by and maintained by. Likely developed by Phillip Lougher, with references to the earliest possible citation.)
(Changed data compression to optional, and provide reference. Provide examples and references of where else SquashFS sees its deployment.)
Line 4: Line 4:
 
|extensions={{ext|sfs}}<ref>[https://github.com/plougher/squashfs-tools/issues/259 What are the commonly accepted file name extension for squashfs? #259 - GitHub]</ref>
 
|extensions={{ext|sfs}}<ref>[https://github.com/plougher/squashfs-tools/issues/259 What are the commonly accepted file name extension for squashfs? #259 - GitHub]</ref>
 
|wikidata={{wikidata|Q389314}}
 
|wikidata={{wikidata|Q389314}}
|compression=lossless, mandatory
+
|compression=lossless, optional
 
|magic=[https://github.com/file/file/blob/master/magic/Magdir/filesystems#L2194 68 73 71 73] (little-endian)<br />[https://github.com/file/file/blob/master/magic/Magdir/filesystems#L2191 73 71 73 68] (big-endian)
 
|magic=[https://github.com/file/file/blob/master/magic/Magdir/filesystems#L2194 68 73 71 73] (little-endian)<br />[https://github.com/file/file/blob/master/magic/Magdir/filesystems#L2191 73 71 73 68] (big-endian)
 
|developed by=Phillip Lougher<ref>[https://sourceforge.net/p/squashfs/mailman/message/67563/ (Squashfs-announce) Squashfs1.2 released - 2003-03-13 05:30:45 - SourceForge mailman]</ref>
 
|developed by=Phillip Lougher<ref>[https://sourceforge.net/p/squashfs/mailman/message/67563/ (Squashfs-announce) Squashfs1.2 released - 2003-03-13 05:30:45 - SourceForge mailman]</ref>
Line 10: Line 10:
 
|released=2002
 
|released=2002
 
}}
 
}}
'''Squashfs''' is a compressed read-only filesystem for Linux. Typically used as a "live image" for booting Linux off a removable storage (e.g. USB, CD/DVD), minus components like the bootloader, kernel and initramfs.<ref>[https://fedoraproject.org/wiki/Changes/EROFSforLiveMedia EROFS For Live Media - Fedora Project]</ref> It is also used in modern AppImage,<ref>[[wikipedia:AppImage#History|History of AppImage - Wikipedia]]</ref>, or [[Snap]]<ref>[[wikipedia:Snap_(software)#Support|Snap - support section - Wikipedia]]</ref> as a way portable software distribution on Linux. Squashfs can also be used to store other data, such as disk images.<ref>[https://www.foo.be/2017/01/Squashfs_As_A_Forensic_Container Squashfs As a Forensic Container - foo.be]</ref> Under Windows, Squashfs contents can be opened/extracted via [[7-Zip]].<ref>[https://stackoverflow.com/a/36877207 python2.7 How to handle squashfs in Windows - StackOverflow]</ref>
+
'''Squashfs''' is read-only filesystem that features optional compression<ref>[https://github.com/plougher/squashfs-tools/issues/206 <nowiki>[</nowiki>feature request<nowiki>]</nowiki>: mksquashfs: Add --no-compression flag to disable all compression #206 - squashfs-tools - GitHub]</ref> for Linux. Typically used as a "live image" for booting Linux off a removable storage (e.g. USB, CD/DVD), minus components like the bootloader, kernel and initramfs.<ref>[https://fedoraproject.org/wiki/Changes/EROFSforLiveMedia EROFS For Live Media - Fedora Project]</ref> It is also used in:
 +
* Embedded devices like network routers<ref>[https://openwrt.org/docs/techref/flash.layout The OpenWrt Flash Layout - Technical Reference - openwrt.org]</ref><ref>[https://github.com/ReFirmLabs/binwalk/issues/301 problems extracting squashfs-image #301 - binwalk - GitHub]</ref><ref>[https://embeddedbits.org/reverse-engineering-my-routers-firmware-with-binwalk-embeddedbits/ Reverse engineering my router's firmware with binwalk - embeddedbits.org]</ref>, or in Android powered devices.<ref>[https://android.stackexchange.com/questions/258236/squashfs-explanation-for-android-system SquashFS explanation for Android system - Android Enthusiasts - Stack Exchange]</ref>
 +
* Modern AppImage,<ref>[[wikipedia:AppImage#History|History of AppImage - Wikipedia]]</ref>, or [[Snap]]<ref>[[wikipedia:Snap_(software)#Support|Snap - support section - Wikipedia]]</ref> as a way portable software distribution on Linux.
 +
* Storage of other data, such as disk images.<ref>[https://www.foo.be/2017/01/Squashfs_As_A_Forensic_Container Squashfs As a Forensic Container - foo.be]</ref> Under Windows, Squashfs contents can be opened/extracted via [[7-Zip]].<ref>[https://stackoverflow.com/a/36877207 python2.7 How to handle squashfs in Windows - StackOverflow]</ref>
  
 
See also [[cramfs]].
 
See also [[cramfs]].

Revision as of 06:52, 20 August 2025

File Format
Name Squashfs
Ontology
Extension(s) .sfs[1]
Wikidata ID Q389314
Compression lossless, optional
Magic Bytes 68 73 71 73 (little-endian)
73 71 73 68 (big-endian)
Developed By Phillip Lougher[2]
Maintained By Phillip Lougher
Released 2002

Squashfs is read-only filesystem that features optional compression[3] for Linux. Typically used as a "live image" for booting Linux off a removable storage (e.g. USB, CD/DVD), minus components like the bootloader, kernel and initramfs.[4] It is also used in:

  • Embedded devices like network routers[5][6][7], or in Android powered devices.[8]
  • Modern AppImage,[9], or Snap[10] as a way portable software distribution on Linux.
  • Storage of other data, such as disk images.[11] Under Windows, Squashfs contents can be opened/extracted via 7-Zip.[12]

See also cramfs.

Contents

Identification

SquashFS files created on little-endian machines begins with hexadecimal 68 73 71 73, which translates to "hsqs" in ASCII. SquashFS files created on big-endian machines with hexadecimal 73 71 73 68, which translates to "sqsh" in ASCII.

Examples

Create a Squashfs (file system) image from current/present directory and output it into its parent directory:

 $ mksquashfs . ../example.squashfs -b 1048576 -comp xz -Xdict-size 100%

Open a Squashfs image (as root) from present directory and have its contents visible in /mnt:

 # mount example.squashfs /mnt

Open a Squashfs image (as user) from present directory and have its contents visible in /mnt/temp:

 $ squashfuse example.squashfs /mnt/temp

Software

Sample files

Links

References

  1. What are the commonly accepted file name extension for squashfs? #259 - GitHub
  2. (Squashfs-announce) Squashfs1.2 released - 2003-03-13 05:30:45 - SourceForge mailman
  3. [feature request]: mksquashfs: Add --no-compression flag to disable all compression #206 - squashfs-tools - GitHub
  4. EROFS For Live Media - Fedora Project
  5. The OpenWrt Flash Layout - Technical Reference - openwrt.org
  6. problems extracting squashfs-image #301 - binwalk - GitHub
  7. Reverse engineering my router's firmware with binwalk - embeddedbits.org
  8. SquashFS explanation for Android system - Android Enthusiasts - Stack Exchange
  9. History of AppImage - Wikipedia
  10. Snap - support section - Wikipedia
  11. Squashfs As a Forensic Container - foo.be
  12. python2.7 How to handle squashfs in Windows - StackOverflow
Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox