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
Lot of 50 - 4GB PC3 DDR3 Mixed Speeds Laptop RAM Mix Brand TESTED
$75.00
A-Tech 8GB DDR3 1600 PC3-12800 Laptop SODIMM 204-Pin Memory RAM PC3L DDR3L 1x 8G
$13.99
[ BULK LOT OF 20 ] UNITS of 8GB DDR4 Laptop RAM SAMSUNG, HYNIX etc.
$179.99
EDGE SK Hynix 16GB (2 x 8GB) PC3L-12800S DDR3 SODIMM Laptop RAM NEW
$16.95
G.SKILL Aegis DDR4-2133 32GB (4x8GB) RAM F4-2400C15D-16GIS
$69.98
Crucial DDR3L 16GB 1600 2x 8GB PC3-12800 Laptop SODIMM Memory RAM PC3 16G DDR3
$22.45
SK Hynix 8GB DDR4 1Rx16 -PC4-3200AA/ HMAA1GS6CJR6N-XN SODIMM
$10.00
Crucial Ballistix Sport 4GB (1x4GB) DDR3 1600 PC3-12800 240-Pin Desktop RAM DIMM
$9.95
Apple MacBook Pro 15.4-inch, Touch Bar, Core i7, 16GB RAM, 256GB SSD, Space Gray
$349.00
128GB Kit 4x 32GB PC4-17000 LRDIMM DELL POWEREDGE R730xd R730 R630 Memory RAM
$127.96