"losetup+gzip": transparentes Werkeln am komprimierten Image

Du suchst ein Programm für einen bestimmten Zweck?
Antworten
Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

"losetup+gzip": transparentes Werkeln am komprimierten Image

Beitrag von Cae » 20.10.2013 23:26:58

Hallo zusammen,

angenommen, ich hab' ein Image von einer Festplatte per gzip komprimiert und will nun damit arbeiten. Das muesste ich dazu entpacken, was im Terrabyte-Bereich ein gewisses Platzproblem darstellt. Falls die Platte weitgehend leer, also genullt war, koennte man sparse files nehmen und wuerde immerhin fuer Serien von Nullbytes keinen Speicherplatz verbrauchen. Man muss aber trotzdem im Vorfeld alle Nutzdaten dekomprimieren und auf die Platte schreiben.

Mein Sachverstand sagt mir: Das sollte intelligenter gehen. Gibt's da was? Ich stell' mir das wie losetup vor, vielleicht auch als FUSE-Zeugs [1] mit genau einer Datei im gemounteten Dateisystem. Das (De-)Komprimieren wird vermutlich nicht im Kernel selbst stattfinden, daher ist FUSE naheliegend.

Gruss Cae

[1] https://code.google.com/p/fusecompress/ macht uebrigens nicht das Gewuenschte, es ist 'n komplettes Dateisystem
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

Benutzeravatar
habakug
Moderator
Beiträge: 4314
Registriert: 23.10.2004 13:08:41
Lizenz eigener Beiträge: MIT Lizenz

Re: "losetup+gzip": transparentes Werkeln am komprimierten I

Beitrag von habakug » 21.10.2013 00:20:36

Hallo!

Du kannst es mit Debianavfs versuchen, wenn man es erstmal geschnallt hat [1], geht das ganz gut.

Gruss, habakug

[1] http://sam.nipl.net/code/avfs/README
Zuletzt geändert von habakug am 21.10.2013 00:50:00, insgesamt 1-mal geändert.
( # = root | $ = user | !! = mod ) (Vor der PN) (Debianforum-Wiki) (NoPaste)

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: "losetup+gzip": transparentes Werkeln am komprimierten I

Beitrag von Cae » 21.10.2013 00:46:56

Tada, tut:

Code: Alles auswählen

$ t=$(mktemp -d)
$ avfsd $t
$ cd $t
$ d=$(mktemp)
$ dd bs=1M count=1 if=/dev/zero | gzip -9 >"$d"
1+0 records in
1+0 records out
1048576 bytes (1.0 MB) copied, 0.024701 s, 42.5 MB/s
$ hd ${d#/*}#ugz
00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00100000
$ rm $d
$ d=
$ cd
$ fusermount -u $t
$ t=
Wenn das Dekomprimieren nicht on the fly gehen wuerde, wuerde der hd-Output nicht aus Nullen bestehen. Das ${d#/*} schnippelt den Slash / am Anfang ab, um den Pfad relativ zu $t zu machen, in welches das /-Dateisystem ueber FUSE abgebildet ist.

Vielen Dank.

Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

Antworten