Co to jest format pliku SFS?
Plik .sfs to obraz skompresowanego systemu plików Squashfs tylko do odczytu, najczęściej spotykany jako główny system plików (root) w dystrybucjach Linux Live CD i USB. Jądro Linux może montować obrazy .sfs bezpośrednio za pomocą mount -t squashfs, a polecenie unsquashfs (z pakietu squashfs-tools) wypakowuje wszystkie pliki bez konieczności montowania.
Squashfs pakuje całe drzewo katalogów w jeden skompresowany obraz binarny. 96-bajtowy superblok na początku identyfikuje format - magiczne bajty hsqs (little-endian) lub sqsh (big-endian) - oraz zapisuje algorytm kompresji, rozmiar bloku i przesunięcia tabel dla i-węzłów (inodes), katalogów i danych fragmentów. Pliki są przechowywane w niezależnie skompresowanych blokach, co umożliwia swobodny dostęp bez dekompresji całego obrazu.
Obsługiwanych jest wiele algorytmów kompresji wybieranych w momencie tworzenia: gzip (oryginalny), lzma, lzo, xz, lz4 oraz zstd. Nowoczesne mksquashfs domyślnie używa xz dla najlepszego stopnia kompresji; obrazy oprogramowania układowego (firmware) często używają lzo dla szybszej dekompresji na sprzęcie o niskiej mocy.
Obrazy ISO Linux Live (Ubuntu, Fedora, Kali Linux) osadzają główny system plików jako filesystem.squashfs lub filesystem.sfs wewnątrz kontenera .iso. Android używa Squashfs dla partycji /system. Routery OpenWrt i kamery IP przechowują oprogramowanie układowe w Squashfs. Rozszerzenie .squashfs jest również powszechnie stosowane dla tego samego formatu.
- Squashfs został stworzony przez Phillipa Loughera w 2002 roku i włączony do jądra Linux w wersji 2.6.29 (marzec 2009).
- EROFS (włączony do Linux 5.4, 2019) jest nowoczesnym następcą dla Androida i systemów wbudowanych.
mksquashfstworzy obrazy;unsquashfsje wypakowuje; oba znajdują się w pakieciesquashfs-tools.
Bezpieczeństwo
RYZYKO: LOWObrazy Squashfs to kontenery systemów plików - obowiązują te same zasady bezpieczeństwa, co przy montowaniu dowolnego obrazu dysku: wypakowane pliki mogą zawierać złośliwe pliki wykonywalne lub ataki typu symlink. Podczas montowania za pomocą „mount -o loop” używaj montowania tylko do odczytu (domyślne dla Squashfs). Wypakuj za pomocą unsquashfs i sprawdź zawartość przed uruchomieniem jakichkolwiek plików binarnych. Obrazy oprogramowania układowego z nieoficjalnych źródeł mogą zawierać backdoory.
Szczegóły formatu
w pigułce- Moduł SFS Puppy Linux - Puppy Linux używa .sfs specyficznie dla modułowych pakietów dodatkowych nakładanych warstwowo na system bazowy.
- Archiwum StarCraft/Blizzard (nieoficjalne) - Niektóre pliki danych gier Blizzard historycznie miały rozszerzenie .sfs, ale jest to zupełnie inny, własnościowy format.
Programy otwierające pliki SFS
Szczegóły techniczne
specyfikacja| Sygnatura pliku | 68 73 71 73 („hsqs”, little-endian) na offsetcie 0; wariant big-endian: 73 71 73 68 („sqsh”) |
| Rozmiar superbloku | 96 bajtów - stały; zawiera magiczne bajty, wersję, liczbę i-węzłów, rozmiar bloku, typ kompresji i przesunięcia tabel |
| Typ systemu plików | Skompresowany tylko do odczytu - brak obsługi zapisu po utworzeniu; montowany jako nakładka (overlay) w systemach live |
| Opcje kompresji | gzip, lzma, lzo, xz/lzma2, lz4, zstd - wybierane podczas tworzenia mksquashfs |
| Domyślna kompresja | xz w nowoczesnym mksquashfs; gzip w starszych wersjach; lzo powszechny w oprogramowaniu układowym |
| Rozmiar bloku | 4 KB - 1 MB (konfigurowalny przy tworzeniu; domyślnie 128 KB) |
| Wersja na dysku | Squashfs 4.0 (2009); pole wersji na 28. bajcie superbloku |
| Integralność | Brak sum kontrolnych dla poszczególnych plików; CRC na blokach metadanych i-węzłów i katalogów w v4.0 |
| Typowy rozmiar obrazu | 4-64 MB (firmware); 400-900 MB (główny system plików Linux Live ISO) |
| Maksymalna liczba plików | ~4 miliardy (limit 32-bitowego numeru i-węzła) |
| Kolejność bajtów | Little-endian (natywna dla hosta); wariant big-endian istnieje dla starszych systemów wbudowanych |
| Narzędzie do tworzenia | mksquashfs (pakiet squashfs-tools) |
| Narzędzie do wypakowywania | unsquashfs (squashfs-tools); 7-Zip w systemie Windows |
| Typowe zastosowania | Główny system plików Linux Live ISO, partycje /system w Androidzie, oprogramowanie układowe routerów OpenWrt i kamer IP |
| Wydano | 2002 (Squashfs 1.0 by Phillip Lougher) |
| Najnowsza wersja | Squashfs 4.0 (2009, merged into Linux kernel 2.6.29) |
| Otwarty standard | Tak · bezpłatny (royalty-free) |
| Specyfikacja | docs.kernel.org |
Konwersje SFS
Pytania i odpowiedzi społeczności
pytania użytkownikówBrak pytań - bądź pierwszą osobą, która zapyta o pliki SFS.