Qu'est-ce que le format de fichier SFS ?
Un fichier .sfs est une image de système de fichiers compressée en lecture seule Squashfs, le plus souvent utilisée comme système de fichiers racine live à l'intérieur des distributions Linux sur CD Live et USB. Le noyau Linux peut monter les images .sfs directement avec mount -t squashfs, et la commande unsquashfs (du paquet squashfs-tools) extrait tous les fichiers sans montage.
Squashfs regroupe toute une arborescence de répertoires dans une seule image binaire compressée. Un superbloc de 96 octets au début identifie le format - octets magiques hsqs (little-endian) ou sqsh (big-endian) - et enregistre l'algorithme de compression, la taille de bloc et les décalages de table pour les inodes, les répertoires et les données de fragments. Les fichiers sont stockés dans des blocs compressés indépendamment, permettant un accès aléatoire sans décompresser l'image entière.
Plusieurs algorithmes de compression sont pris en charge et sélectionnés au moment de la création : gzip (original), lzma, lzo, xz, lz4 et zstd. Le mksquashfs moderne utilise par défaut xz pour un meilleur ratio ; les images de micrologiciels embarqués utilisent souvent lzo pour une décompression plus rapide sur du matériel peu puissant.
Les ISO Linux Live (Ubuntu, Fedora, Kali Linux) intègrent le système de fichiers racine sous le nom filesystem.squashfs ou filesystem.sfs à l'intérieur d'un conteneur .iso. Android utilise Squashfs pour les partitions /system. Les routeurs OpenWrt et les caméras IP stockent le micrologiciel dans Squashfs. L'extension .squashfs est également largement utilisée pour le même format.
- Squashfs a été créé par Phillip Lougher en 2002 et intégré au noyau Linux dans la version 2.6.29 (mars 2009).
- EROFS (intégré dans Linux 5.4, 2019) est le successeur moderne pour Android et les déploiements embarqués.
mksquashfscrée les images ;unsquashfsles extrait ; les deux font partie du paquetsquashfs-tools.
Sécurité et sûreté
RISQUE : LOWLes images Squashfs sont des conteneurs de système de fichiers - les mêmes considérations de sécurité s'appliquent qu'au montage de n'importe quelle image disque : les fichiers extraits pourraient contenir des exécutables malveillants ou des attaques par lien symbolique. Lors du montage avec « mount -o loop », utilisez un montage en lecture seule (déjà par défaut pour Squashfs). Extrayez avec unsquashfs et inspectez avant d'exécuter tout binaire. Les images de micrologiciels provenant de sources non officielles pourraient contenir des portes dérobées.
Détails du format
en bref- Module SFS de Puppy Linux - Puppy Linux utilise .sfs spécifiquement pour les paquets d'extension modulaires superposés au système de base.
- Archive StarCraft/Blizzard (non officiel) - Certains fichiers de données de jeux Blizzard étaient historiquement nommés avec .sfs mais constituent un format propriétaire complètement différent.
Programmes qui ouvrent les fichiers SFS
Détails techniques
spécifications approfondies| Signature de fichier | 68 73 71 73 (« hsqs », little-endian) au décalage 0 ; variante big-endian : 73 71 73 68 (« sqsh ») |
| Taille du superbloc | 96 octets - fixe ; contient la signature, la version, le nombre d'inodes, la taille de bloc, le type de compression et les décalages de table |
| Type de système de fichiers | Compressé en lecture seule - pas de support d'écriture une fois créé ; remontage en overlay pour les systèmes live |
| Options de compression | gzip, lzma, lzo, xz/lzma2, lz4, zstd - sélectionnables lors de la création avec mksquashfs |
| Compression par défaut | xz dans le mksquashfs moderne ; gzip dans les anciennes versions ; lzo courant dans les micrologiciels embarqués |
| Taille de bloc | 4 Ko - 1 Mo (configurable à la création ; par défaut 128 Ko) |
| Version sur disque | Squashfs 4.0 (2009) ; champ de version à l'octet 28 du superbloc |
| Intégrité | Pas de somme de contrôle par fichier ; CRC sur les blocs de métadonnées d'inodes et de répertoires en v4.0 |
| Taille d'image typique | 4-64 Mo (micrologiciel embarqué) ; 400-900 Mo (système de fichiers racine ISO Linux Live) |
| Nombre maximum de fichiers | ~4 milliards (limite du numéro d'inode 32 bits) |
| Ordre des octets | Little-endian (natif de l'hôte) ; une variante big-endian existe pour les anciens systèmes embarqués |
| Outil de création | mksquashfs (paquet squashfs-tools) |
| Outil d'extraction | unsquashfs (squashfs-tools) ; 7-Zip sur Windows |
| Cas d'utilisation courants | Système de fichiers racine ISO Linux Live, partitions Android /system, micrologiciels de routeurs OpenWrt et de caméras IP |
| Publié | 2002 (Squashfs 1.0 by Phillip Lougher) |
| Dernière version | Squashfs 4.0 (2009, merged into Linux kernel 2.6.29) |
| Standard ouvert | Oui · libre de droits |
| Spécification | docs.kernel.org |
Conversions SFS
Q&R de la communauté
posées par les utilisateursPas encore de questions - soyez le premier à poser une question sur les fichiers SFS.