Die Squash-FS-Tools erlauben es, Squash-FS-Partitionen zu erzeugen und um Daten zu ergänzen. Die Release 4.4 erlaubt reproduzierbare Builds.
Squash-FS ist ein stark komprimiertes Read-only-Dateisystem. Das kommt im Linux-Bereich unter anderem beim Bau von ISO-Dateien zum Einsatz. Wer schon einmal die Livesysteme von Ubuntu, Debian, Fedora oder Arch-Linux ausprobiert hat, ist damit in Berührung gekommen. Das Dateisystem komprimiert unter anderem Inodes, Dateien und Verzeichnisse. So schrumpft es umfangreiche Systeme auf eine handhabbare Größe.
Die Verfügbarkeit einer neuen Version 4.4 der Squash-FS-Tools hat Entwickler Phillip Lougher nun auf der Kernel-Mailingliste angekündigt. In dem Post stellt er auch die Neuerungen vor. So generiert “mksquashfs” nun standardmäßig reproduzierbare Builds, die insbesondere in Cloudumgebungen eine Rolle spielen. Bislang verwendete “mksquashfs” Threads und komprimierte die übergebenen Fragmente in zufälliger Reihenfolge, je nachdem, welcher Thread zuerst ans Ziel kam. Der nächste Lauf mit denselben Dateien führte daher zu einer anderen Fragmentreihenfolge.
Feste Fragmentreihung
Das ändert sich nun: Das Tool erzeugt jedes Mal eine reproduzierbare Fragmentreihenfolge. Zugleich haben die Entwickler die Option “-mkfs-time <Time>” eingeführt. Die erlaubt es, einen festen Zeitstempel zu setzen, da abweichende Zeitstempel die Reproduzierbarkeit ebenfalls gefährden. Wer diese Security-Features nicht braucht, weil Reproduzierbarkeit kein Ziel ist, schaltet den Mechanismus über “-not-reproducible” ab.
Wie erwähnt ist auch die Komprimierung ein Schlüssel-Feature bei Squash-FS. Die Tools unterstützen neuerdings den von Facebook entwickelten Zstandard-Algorithmus (Zstd). Admins wählen Kompressionslevel von 1 bis 22. Ein weiteres neues Feature: Pseudodateien, wie die unter “/dev”, “/proc” oder “/sys” bringen nun Support für symbolische Links mit. Nicht zuletzt wurden Sicherheitslücken (CVE-2015-2015-4645 und CVE-2015-4646) repariert und Fehler behoben. So lässt sich “unsquashfs” nicht mehr so einfach durch korrupte oder fehlerhaft generierte Dateisysteme aus dem Tritt bringen. Dafür stuft das Tool nun mehr Fehler als zuvor als “Fatal” ein und bricht die Arbeit sofort ab. Zu finden ist die neue Version 4.4 auf Github.



