Was ist ein Loop-Dateisystem?
Gnu / Linux (und die überwiegende Mehrheit der Unix-Systeme) verfügt über einen Mechanismus, mit dem eine Datei (zuvor formatiert) wie eine Festplatte bereitgestellt werden kann, normalerweise ohne Partitionstabelle. Dieses beschissene Diagramm (von mir gemacht) erklärt, wie dieser Mechanismus funktioniert.
Verwendung von Schleifendateien
1- Mount.iso-Dateien
Die ISO-Dateien, der Standard par excellence auf CDs und DVDs, sind nichts anderes als eine Loop-Datei, deren Dateisystem sein kann ISO 9960 (häufiger auf CDs) oder UDF (am häufigsten auf DVDs). Um es zu mounten, verwenden wir den Befehl mount.
mkdir iso # erstelle das Verzeichnis chmod -R 666 iso # erteile allen Benutzern die Leseberechtigung mount image.iso iso / # mounte das iso image (erfordert root)
Die Einschränkung besteht darin, dass beide Dateisysteme aus offensichtlichen Gründen schreibgeschützt sind.
2- schreibgeschützte Squashfs
Angenommen, wir haben einen Ordner mit Bildern und / oder Videos, der nach dem Jahr der Aufnahme geordnet ist. Offensichtlich ist es ziemlich unwahrscheinlich, dass wir die in Ordnern aus früheren Jahren enthaltenen Daten ändern möchten. Hier kommt Squashfs ins Spiel. Squashfs ist ein schreibgeschütztes komprimiertes Dateisystem. Sobald das Image erstellt wurde, Wir können die darin enthaltenen Daten nicht ändern.
Also nicht nur Wir werden viel Platz sparen, aber es wird auch den merkwürdigen Effekt geben, dass Das Lesen der Dateien wird schneller sein, da kleinere Dateien gelesen werden müssen, ist das Dekomprimieren einer Datei heutzutage für die meisten CPUs ein minimaler Aufwand.
Um das Präambelbild zu erstellen, müssen wir den Befehl mksquashfs verwenden, dessen Syntax einfach ist:
mksquashfs directorio 1 [directorio 2 directorio 3...] imagen.sqsfs -comp [algoritmo de compresión] -b [tamaño del bloque ]
Und hier ist ein praktisches Beispiel:
mksquashfs fotos-2009 fotos-2010 fotos-2011 fotos-2012 fotos-2013 fotos_2009-2013.sqsfs -comp xz -bs 1M
Nun, der gewählte Algorithmus ist xz, da es derjenige ist, der höheres Kompressionsverhältnis Angebote (von den verfügbaren), während die gewählte Blockgröße das Maximum ist. Was ermöglicht bessere Komprimierungsergebnisse (Standardmäßig sind es 64 KB).
Jetzt sollten wir in der Lage sein, es mit einem einfachen zu montieren;
mount fotos_2009-2013.sqsfs fotos_2009-2013/
Nachdem wir überprüft haben, ob alles korrekt ist, können wir die Originaldateien löschen oder die Datei als Backup belassen.
Wenn wir möchten, dass es beim Start des Betriebssystems bereitgestellt wird, müssen wir der Zeile / etc / fstab eine Zeile dieses Stils hinzufügen:
/dir/loop.sqsh /dir/mountdir squashfs ro,defaults 0 0
Was passiert nun, wenn wir Dateien hinzufügen oder löschen oder einfach diese Schnappschüsse extrahieren möchten? Nun, wir haben den Befehl den Befehl unsquashfs.
unsquashfs [opciones] snapshot.sqfs [Directorios o archivos que extraer]
Standardmäßig wird "squashfs-root" als Extraktionsverzeichnis verwendet. kann mit der Option -d geändert werden
- Live-CDs
- Eingebettete Systeme
- Servidores
- Im Allgemeinen jedes schreibgeschützte System
3- «Notfalltausch»
Stellen Sie sich vor, Sie benötigen aus irgendeinem Grund (Ruhezustand, umfangreiche Zusammenstellungen ...) einen zusätzlichen Tausch. Hier kommt die Loop-Datei ins Spiel. Der erste Schritt besteht darin, eine leere Datei mit einer bestimmten Größe und einer bestimmten Blockgröße zu erstellen. Dies geschieht mit dem Befehl dd:
dd if=/dev/zero of=loop bs=1M count=512
In diesem Fall beträgt der Block 512 MiB und die Dateigröße XNUMX MB. Es muss nicht so sein.
Mit diesem Befehl erstellen und aktivieren wir den Swap
mkswap loop && swapon loop
Beachten Sie, dass die Leistung einer Loop-Datei immer etwas geringer ist als die einer echten physischen Datei.
4-mach was du willst
Dies sind nur einige der charakteristischsten Beispiele. Sie können gerne mit Chroots, Verschlüsselungssystemen, verschachtelten Schleifen experimentieren. Ihre Möglichkeiten sind grenzenlos. Aber seien Sie vorsichtig mit den Befehlen, die Sie ausführen. Überlegen Sie sorgfältig, bevor Sie die Eingabetaste drücken.
Links
- Squashfs Wikipedia
- Mann mksquashfs
- Mann unsquashfs
- ISO 9960 Wikipedia
- UDF Wikipedia
- VFS Wikipedia
- Schleife Wikipedia
Guter Beitrag che !! Ich habe einige gigantische Backups da draußen und es ist mir nie in den Sinn gekommen, sie zu komprimieren. Ich werde dies verwenden und übrigens meine externe verschlüsseln, um es auszufüllen, und dann erinnerte ich mich, dass ich es verschlüsseln würde 🙁
Interessant, das Squashfs-Ding auszuprobieren
Gutes Tutorial, ich hatte gelesen, wie man img-Dateien mit dd erstellt und einbindet, kannte aber die Verwendung von Squashfs und deren Komprimierung nicht. Obwohl es nicht erlaubt, seinen Inhalt zu ändern, kann seine Verwendung in Situationen wie den von Ihnen kommentierten nützlich sein. Danke fürs Teilen, Grüße.
Sehr gut zu wissen, danke für den Tipp.
Sie lernen immer etwas Neues. Ausgezeichnet!
Es ist lustig, ich kannte Squashfs und wofür sie sind, aber es war mir nie in den Sinn gekommen, meine Bilder zu komprimieren. Danke für den Tipp.
Beeindruckend, lass es uns versuchen, um zu sehen, was los ist, sehr guter Tipp
ausgezeichnetes Tuto !!! =)… Sehr guter Tipp !!!
Hallo Roader. Sehr interessanter Artikel, danke fürs Teilen.
In Gentoo müssen Sie die SquashFS-Unterstützung im Kernel aktivieren, bevor Sie sie kompilieren können. Ich werde sie testen, um zu sehen, wie sie funktioniert. Vielen Dank.
auf Gentoo getestet, den Kernel dafür kompiliert und ausgezeichnet.
Korrigieren Sie einfach einen kleinen Tippfehler, Roader.
Im Beispiel:
mksquashfs Fotos-2009 Fotos-2010 Fotos-2011 Fotos-2012 Fotos-2013 Fotos_2009-2013.sqsfs -comp xz -bs 1M
Ersparen Sie das s in "-bs" (das die Blockgröße bestimmt), es sollte folgendermaßen aussehen:
mksquashfs Fotos-2009 Fotos-2010 Fotos-2011 Fotos-2012 Fotos-2013 Fotos_2009-2013.sqsfs -comp xz -b 1M