Hi nochmal,
ich hab mir das cloop-2.02.1+eb.10-Paket aus den Debian-Sourcen gegriffen und ein paar Änderungen dran vorgenommen, damit ich es unter einem SuSE-OS mit einem Vanilla-Kernel (2.6.16.20 von kernel.org) ausprobieren konnte.
Außerdem: Falls man ein Image mit einer Blockgröße komprimiert, durch die die Größe des Images nicht ohne Rest teilbar ist (z.B: Imagegröße: 96KB, Blockgröße: 64KB) und man extrahiert/entkomprimiert das Image wieder, dann ist es hinterher um den Rest größer (also, z.B. vorher: 96KB, nachher: 128KB bei einer Blockgröße von 64KB).
Mit meiner Änderung wird die Größe des letzten Blocks im Header eingetragen und beim Auspacken wird der letzte Block auf die ursprüngliche Größe gekürzt.
Diese Änderung ist auf-und abwärtskompatibel:
- Alte Cloop-images enthalten an der Stelle 0, das wird von der geänderten extract_fs-version als "volle Größe" interpretiert.
- Neue Images enthalten an der Stelle 0 oder etwas anderes, aber ein altes extract_fs betrachtet diese Stelle gar nicht.
Ausprobiert hab ich es mit einer 15GB großen Kopie von einer Festplatten-Partition (wurde auf 4GB komprimiert, mit 1GB RAM im Rechner) :
- 'create_compressed_fs -L -1 -B 64K hda2_orig.img hda2_7zip.cloop' (= Komprimieren mit 7zip-Algorithmus ) funktioniert.
- 'extract_compressed_fs hda2_7zip.cloop > hda2_.img' funktioniert auch, letzter Block wird gekürzt.
- 'cmp hda2_orig.img hda2_.img' findet keinen Unterschied
- 'losetup /dev/cloop1 /tmp/hda2_7zip.cloop; mount -o ro -t auto /dev/cloop1 /tmp/test1' erzeugt ein Bereich unter /tmp/test1, der in Ordnung aussieht. Ein 'diff' zwischen diesem und einem unkomprimiert gemounteten loop-image hab ich noch nicht gemacht.
Hintergrund:
Ich wollte etwas haben, dass es mir ermöglicht in Partition-Images, die ich zu Backup-Zwecken von Festplatten gezogen habe, reinzuschauen. D.h. ich kann mir die Filesysteme und deren Größe nicht aussuchen. Die Images werden komprimiert gespeichert, sonst verbrauchen sie zuviel Platz. Die Komprimiermethode kann ich mir aussuchen.
Bislang musste ich ein Image entpacken, reinschauen, und danach die entpackte Version wieder löschen.
Von Anfang an dachte ich, dass "cloop" einer der besten Kandidaten für eine bessere Lösung wäre, das Problem war nur, dass das komprimierte Image in den Speicher passen musste - bei 10-40GB kann man das vergessen. Ich wollte es schon selbst umschreiben, aber dann entdeckte ich, dass mir jemand zuvorgekommen warBeim Testen trat dann das "Problem" mit der Größenveränderung zutage, aber das war nicht schwer zu lösen.
Meine Fragen:
- Interessiert das überhaupt jemanden?
- Falls ja, was soll ich nun mit den Änderungen machen:
-- hier einen Patch posten?
-- den Patch an die Debian-Leute schicken?
-- beides?
-- irgendwas anderes, und zwar:....
Viele Grüße
Dirk

Cisco Nexus N9K-C92160YC-X 48P 25GbE SFP28 6P QSFP+/QSFP28 PE Switch
$439.00
Cisco Acacia DP04QSDD-E25-840 400G QSFP-DD Coherent DCO Transceiver Module
$699.99
Cisco WS-C3650-12X48UR-L 48-Port Stackable Layer 3 8x10G SFP+ Port Switch
$129.99
Cisco Catalyst C9130AXI-B WiFi 6 802.11ax Wireless Access Point Brand New
$101.99
Cisco | N3K-C3232C | 32-Port 100G QSFP Network Switch W/ 2x PSU, 2x Power Cords
$240.00
New Sealed Cisco GLC-LH-SMD 1000BASE-LX/LH SFP Transceiver Module *US
$17.00
Cisco C9300-48UXM-A Switch 9300 Series 48-port UPoE Network
$874.99
Cisco C3850-NM-2-10G Catalyst 3850 2 x 10GE Network Module
$30.00
nxa-pac-750w-pe v02 NEW OPEN BOX for Cisco Nexus 9300 Series power supply
$200.00
Cisco Catalyst C9120AXI-B Wi-Fi 6 Access Points
$30.00