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 war Beim 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 Systems NCS2K-20-SMRFS-L optical multiplexor CISCO EXCESS
$3599.00
Cisco SG110 24 Port Gigabit Ethernet Switch w/ 2 x SFP SG110-24
$117.00
Cisco RV160 VPN Router 4 Gigabit Ethernet Ports RV160-K9-AR
$80.00
Cisco AironetAIR-AP2802I-Q-K9 IEEE 802.11ac 5.20 Gbit/s Wireless Access Point
$130.00
Cisco WS-C3850-48P-L 48-Port Gigabit 3850 PoE Switch w/ 715W+ C3850-NM-4-1G Mod
$83.00
Cisco C3850-NM-2-10G 2 Port Network Exp.Module for 3850
$38.99
Cisco Catalyst WS-C2960-48TT-L V02 48 Port Fast Ethernet Switch
$34.00
Cisco WS-C4948-10GE-S 4948-10GE 48 Port Gigabit +10GB Switch w single AC 15.0 OS
$99.99
NEW SEALED Cisco C9300L-STACK-KIT
$479.99
Cisco MS410-16-HW 16 Ports Fully Managed Ethernet Switch NEW Unclaimed
$999.99