Che cos'è il formato di file SFS?
Un file .sfs è un'immagine di un filesystem compresso in sola lettura Squashfs, comunemente presente come filesystem root live all'interno delle distribuzioni Linux Live CD e USB. Il kernel Linux può montare direttamente le immagini .sfs con mount -t squashfs, e il comando unsquashfs (dal pacchetto squashfs-tools) estrae tutti i file senza necessità di montaggio.
Squashfs comprime un intero albero di directory in una singola immagine binaria compressa. Un superblocco di 96 byte all'inizio identifica il formato - magic bytes hsqs (little-endian) o sqsh (big-endian) - e registra l'algoritmo di compressione, la dimensione del blocco e gli offset delle tabelle per inode, directory e dati dei frammenti. I file sono memorizzati in blocchi compressi indipendentemente, consentendo l'accesso casuale senza decomprimere l'intera immagine.
Sono supportati molteplici algoritmi di compressione, selezionabili al momento della creazione: gzip (originale), lzma, lzo, xz, lz4 e zstd. Il moderno mksquashfs utilizza predefinitamente xz per il miglior rapporto; le immagini firmware embedded usano spesso lzo per una decompressione più rapida su hardware a bassa potenza.
Le ISO Linux Live (Ubuntu, Fedora, Kali Linux) incorporano il filesystem root come filesystem.squashfs o filesystem.sfs all'interno di un contenitore .iso. Android utilizza Squashfs per le partizioni /system. I router OpenWrt e le telecamere IP memorizzano il firmware in Squashfs. L'estensione .squashfs è anch'essa ampiamente utilizzata per lo stesso formato.
- Squashfs è stato creato da Phillip Lougher nel 2002 e integrato nel kernel Linux nella versione 2.6.29 (marzo 2009).
- EROFS (integrato in Linux 5.4, 2019) è il moderno successore per Android e implementazioni embedded.
mksquashfscrea le immagini;unsquashfsle estrae; entrambi si trovano nel pacchettosquashfs-tools.
Sicurezza e incolumità
RISCHIO: LOWLe immagini Squashfs sono contenitori di filesystem - si applicano le stesse considerazioni di sicurezza del montaggio di qualsiasi immagine disco: i file estratti potrebbero contenere eseguibili dannosi o attacchi tramite collegamenti simbolici. Quando si monta con «mount -o loop», utilizzare un montaggio in sola lettura (già predefinito per Squashfs). Estrarre con unsquashfs e ispezionare prima di eseguire qualsiasi binario. Le immagini firmware da fonti non ufficiali potrebbero contenere backdoor.
Dettagli del formato
in sintesi- Modulo SFS di Puppy Linux - Puppy Linux utilizza .sfs specificamente per pacchetti aggiuntivi modulari stratificati sopra il sistema di base.
- Archivio StarCraft/Blizzard (non ufficiale) - Alcuni file di dati dei giochi Blizzard venivano storicamente nominati con .sfs ma sono un formato proprietario completamente diverso.
Programmi che aprono file SFS
Dettagli tecnici
specifiche approfondite| Firma del file | 68 73 71 73 («hsqs», little-endian) all'offset 0; variante big-endian: 73 71 73 68 («sqsh») |
| Dimensione superblocco | 96 byte - fissa; contiene magic, versione, conteggio inode, dimensione blocco, tipo di compressione e offset delle tabelle |
| Tipo di filesystem | Compresso in sola lettura - nessun supporto alla scrittura una volta creato; rimontare come overlay per sistemi live |
| Opzioni di compressione | gzip, lzma, lzo, xz/lzma2, lz4, zstd - selezionabili al momento della creazione con mksquashfs |
| Compressione predefinita | xz nel moderno mksquashfs; gzip nelle versioni precedenti; lzo comune nei firmware embedded |
| Dimensione del blocco | 4 KB - 1 MB (configurabile alla creazione; predefinita 128 KB) |
| Versione su disco | Squashfs 4.0 (2009); campo versione all'offset byte 28 del superblocco |
| Integrità | Nessun checksum per file; CRC sui blocchi di metadati di inode e directory nella v4.0 |
| Dimensione tipica immagine | 4-64 MB (firmware embedded); 400-900 MB (filesystem root ISO Linux Live) |
| Numero massimo di file | ~4 miliardi (limite numero inode a 32 bit) |
| Ordine dei byte | Little-endian (nativo dell'host); esiste la variante big-endian per vecchi sistemi embedded |
| Strumento di creazione | mksquashfs (pacchetto squashfs-tools) |
| Strumento di estrazione | unsquashfs (squashfs-tools); 7-Zip su Windows |
| Casi d'uso comuni | Filesystem root ISO Linux Live, partizioni Android /system, firmware per router OpenWrt e telecamere IP |
| Rilasciato | 2002 (Squashfs 1.0 by Phillip Lougher) |
| Ultima versione | Squashfs 4.0 (2009, merged into Linux kernel 2.6.29) |
| Standard aperto | Sì · royalty-free |
| Specifica | docs.kernel.org |
Conversioni SFS
Domande e risposte della community
chiesto dagli utentiAncora nessuna domanda - sii il primo a chiedere informazioni sui file SFS.