¿Qué es el formato de archivo SFS?
Un archivo .sfs es una imagen de sistema de archivos comprimido de solo lectura Squashfs, que se encuentra comúnmente como el sistema de archivos raíz en vivo dentro de las distribuciones de Linux Live CD y USB. El kernel de Linux puede montar imágenes .sfs directamente con mount -t squashfs, y el comando unsquashfs (del paquete squashfs-tools) extrae todos los archivos sin necesidad de montaje.
Squashfs empaqueta un árbol de directorios completo en una sola imagen binaria comprimida. Un superbloque de 96 bytes al inicio identifica el formato - bytes mágicos hsqs (little-endian) o sqsh (big-endian) - y registra el algoritmo de compresión, el tamaño del bloque y los desplazamientos de tabla para inodos, directorios y datos de fragmentos. Los archivos se almacenan en bloques comprimidos de forma independiente, lo que permite el acceso aleatorio sin descomprimir la imagen completa.
Se admiten múltiples algoritmos de compresión que se seleccionan en el momento de la creación: gzip (original), lzma, lzo, xz, lz4 y zstd. El mksquashfs moderno utiliza xz por defecto para obtener la mejor relación; las imágenes de firmware integradas a menudo usan lzo para una descompresión más rápida en hardware de baja potencia.
Las ISO de Linux Live (Ubuntu, Fedora, Kali Linux) integran el sistema de archivos raíz como filesystem.squashfs o filesystem.sfs dentro de un contenedor .iso. Android utiliza Squashfs para las particiones /system. Los routers OpenWrt y las cámaras IP almacenan el firmware en Squashfs. La extensión .squashfs también se utiliza ampliamente para el mismo formato.
- Squashfs fue creado por Phillip Lougher en 2002 e integrado en el kernel de Linux en la versión 2.6.29 (marzo de 2009).
- EROFS (integrado en Linux 5.4, 2019) es el sucesor moderno para despliegues en Android y sistemas integrados.
mksquashfscrea imágenes;unsquashfslas extrae; ambos se encuentran en el paquetesquashfs-tools.
Seguridad y protección
RIESGO: LOWLas imágenes Squashfs son contenedores de sistemas de archivos - se aplican las mismas consideraciones de seguridad que al montar cualquier imagen de disco: los archivos extraídos podrían contener ejecutables maliciosos o ataques de enlaces simbólicos. Al montar con «mount -o loop», use un montaje de solo lectura (ya es el predeterminado para Squashfs). Extraiga con unsquashfs e inspeccione antes de ejecutar cualquier binario. Las imágenes de firmware de fuentes no oficiales podrían tener puertas traseras.
Detalles del formato
en pocas palabras- Módulo SFS de Puppy Linux - Puppy Linux utiliza .sfs específicamente para paquetes de complementos modulares superpuestos al sistema base.
- Archivo StarCraft/Blizzard (no oficial) - Algunos archivos de datos de juegos de Blizzard se nombraron históricamente con .sfs, pero son un formato propietario completamente diferente.
Programas que abren archivos SFS
Detalles técnicos
especificación profunda| Firma de archivo | 68 73 71 73 («hsqs», little-endian) en el desplazamiento 0; variante big-endian: 73 71 73 68 («sqsh») |
| Tamaño del superbloque | 96 bytes - fijo; contiene el número mágico, versión, recuento de inodos, tamaño de bloque, tipo de compresión y desplazamientos de tabla |
| Tipo de sistema de archivos | Comprimido de solo lectura - sin soporte de escritura una vez creado; se vuelve a montar como overlay para sistemas en vivo |
| Opciones de compresión | gzip, lzma, lzo, xz/lzma2, lz4, zstd - seleccionables al momento de la creación con mksquashfs |
| Compresión por defecto | xz en mksquashfs moderno; gzip en versiones antiguas; lzo es común en firmware integrado |
| Tamaño de bloque | 4 KB - 1 MB (configurable en la creación; por defecto 128 KB) |
| Versión en disco | Squashfs 4.0 (2009); campo de versión en el desplazamiento de byte 28 del superbloque |
| Integridad | Sin suma de comprobación por archivo; CRC en bloques de metadatos de inodos y directorios en v4.0 |
| Tamaño típico de imagen | 4-64 MB (firmware integrado); 400-900 MB (sistema de archivos raíz de ISO Linux Live) |
| Máximo de archivos | ~4 mil millones (límite de número de inodo de 32 bits) |
| Orden de bytes | Little-endian (nativo del host); existe una variante big-endian para sistemas integrados antiguos |
| Herramienta de creación | mksquashfs (paquete squashfs-tools) |
| Herramienta de extracción | unsquashfs (squashfs-tools); 7-Zip en Windows |
| Casos de uso comunes | Sistema de archivos raíz de ISO Linux Live, particiones /system de Android, firmware de routers OpenWrt y cámaras IP |
| Lanzado | 2002 (Squashfs 1.0 by Phillip Lougher) |
| Última versión | Squashfs 4.0 (2009, merged into Linux kernel 2.6.29) |
| Estándar abierto | Sí · libre de regalías |
| Especificación | docs.kernel.org |
Conversiones de SFS
Preguntas y respuestas de la comunidad
preguntado por usuariosAún no hay preguntas; sea el primero en preguntar sobre los archivos SFS.