Wat is het SFS-bestandsformaat?
Een .sfs-bestand is een Squashfs alleen-lezen gecomprimeerd bestandssysteem-image, meestal aangetroffen als het live root-bestandssysteem binnen Linux Live CD- en USB-distributies. De Linux-kernel kan .sfs-images direct koppelen met mount -t squashfs, en het commando unsquashfs (uit het pakket squashfs-tools) pakt alle bestanden uit zonder ze te koppelen.
Squashfs verpakt een volledige mappenstructuur in één enkel gecomprimeerd binair image. Een superblock van 96 bytes aan het begin identificeert het formaat - magic bytes hsqs (little-endian) of sqsh (big-endian) - en registreert het compressie-algoritme, de blokgrootte en tabeloffsets voor inodes, mappen en fragmentgegevens. Bestanden worden opgeslagen in onafhankelijk gecomprimeerde blokken, wat willekeurige toegang mogelijk maakt zonder het hele image te hoeven decomprimeren.
Meerdere compressie-algoritmen worden ondersteund en geselecteerd op het moment van creatie: gzip (origineel), lzma, lzo, xz, lz4 en zstd. Moderne mksquashfs gebruikt standaard xz voor de beste ratio; embedded firmware-images gebruiken vaak lzo voor snellere decompressie op hardware met een laag stroomverbruik.
Linux Live ISO's (Ubuntu, Fedora, Kali Linux) sluiten het root-bestandssysteem in als filesystem.squashfs of filesystem.sfs binnen een .iso-container. Android gebruikt Squashfs voor /system-partities. OpenWrt-routers en IP-camera's slaan firmware op in Squashfs. De extensie .squashfs wordt ook veel gebruikt voor hetzelfde formaat.
- Squashfs is in 2002 gemaakt door Phillip Lougher en in maart 2009 opgenomen in de Linux-kernel (versie 2.6.29).
- EROFS (opgenomen in Linux 5.4, 2019) is de moderne opvolger voor Android en embedded toepassingen.
mksquashfsmaakt images;unsquashfspakt ze uit; beide maken deel uit van het pakketsquashfs-tools.
Beveiliging & veiligheid
RISICO: LOWSquashfs-images zijn bestandssysteemcontainers - dezelfde veiligheidsoverwegingen gelden als bij het koppelen van elk schijfimage: de uitgepakte bestanden kunnen kwaadaardige uitvoerbare bestanden of symlink-aanvallen bevatten. Gebruik bij het koppelen met „mount -o loop” een alleen-lezen koppeling (reeds standaard voor Squashfs). Pak uit met unsquashfs en inspecteer de inhoud voordat u binaire bestanden uitvoert. Firmware-images van onofficiële bronnen kunnen voorzien zijn van een achterdeur.
Formaatdetails
in een notendop- Puppy Linux SFS-module - Puppy Linux gebruikt .sfs specifiek voor modulaire add-on pakketten die bovenop het basissysteem worden geplaatst.
- StarCraft/Blizzard-archief (onofficieel) - Sommige gegevensbestanden van Blizzard-games werden historisch benoemd met .sfs, maar zijn een volledig ander eigen formaat.
Programma's die SFS-bestanden openen
Technische details
diepe specificaties| Bestandssignatuur | 68 73 71 73 („hsqs”, little-endian) op offset 0; big-endian variant: 73 71 73 68 („sqsh”) |
| Superblock-grootte | 96 bytes - vast; bevat magic, versie, inode-aantal, blokgrootte, compressietype en tabeloffsets |
| Bestandssysteemtype | Alleen-lezen gecomprimeerd - geen schrijfondersteuning na creatie; opnieuw koppelen als overlay voor live-systemen |
| Compressie-opties | gzip, lzma, lzo, xz/lzma2, lz4, zstd - selecteerbaar tijdens mksquashfs-creatie |
| Standaard compressie | xz in moderne mksquashfs; gzip in oudere versies; lzo gebruikelijk in embedded firmware |
| Blokgrootte | 4 KB - 1 MB (configureerbaar bij creatie; standaard 128 KB) |
| On-disk versie | Squashfs 4.0 (2009); versieveld op superblock byte-offset 28 |
| Integriteit | Geen checksum per bestand; CRC op inode- en directory-metadatablokken in v4.0 |
| Typische image-grootte | 4-64 MB (embedded firmware); 400-900 MB (Linux Live ISO root-bestandssysteem) |
| Maximaal aantal bestanden | ~4 miljard (limiet van 32-bits inode-nummer) |
| Byte-volgorde | Little-endian (host-native); big-endian variant bestaat voor oudere embedded systemen |
| Creatie-tool | mksquashfs (pakket squashfs-tools) |
| Extractie-tool | unsquashfs (squashfs-tools); 7-Zip op Windows |
| Veelvoorkomende toepassingen | Linux Live ISO root-bestandssysteem, Android /system-partities, OpenWrt-router en IP-camera firmware |
| Uitgebracht | 2002 (Squashfs 1.0 by Phillip Lougher) |
| Laatste versie | Squashfs 4.0 (2009, merged into Linux kernel 2.6.29) |
| Open standaard | Ja · royaltyvrij |
| Specificatie | docs.kernel.org |
SFS conversies
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over SFS-bestanden.