This third version changes the API again to allow you to select both the compression program (from {compress,gzip,bzip2,xz,lzop}) and optionally the compression level. Some more timings are below. 'lzop' is generally much faster than other methods, although there is still > 50% penalty for using lzop on a fairly full filesystem. Interestingly, 'lzop -1' which is supposed to be fast, is slower than the default level. Rich. 100 MB empty filesystem. Straight download was 0.65 seconds. $ ./run ./fish/guestfish -N fs \ time compress-device-out gzip /dev/vda1 >(wc -c) level:1 elapsed time: 0.92 seconds 462390 $ ./run ./fish/guestfish -N fs \ time compress-device-out gzip /dev/vda1 >(wc -c) level:9 elapsed time: 1.14 seconds 107903 $ ./run ./fish/guestfish -N fs \ time compress-device-out lzop /dev/vda1 >(wc -c) elapsed time: 0.73 seconds 428023 $ ./run ./fish/guestfish -N fs \ time compress-device-out lzop /dev/vda1 >(wc -c) level:1 elapsed time: 0.84 seconds 428125 $ ./run ./fish/guestfish -N fs \ time compress-device-out bzip2 /dev/vda1 >(wc -c) elapsed time: 1.80 seconds 2801 $ ./run ./fish/guestfish -N fs \ time compress-device-out xz /dev/vda1 >(wc -c) elapsed time: 9.17 seconds 18164 Real filesystem image ~5.5GB in size, 59% in use. Straight download was 78.74 seconds. $ ./run ./fish/guestfish --ro -a /dev/vg_pin/F16x64 \ run : time compress-device-out lzop /dev/vg_f16x64/lv_root >(wc -c) elapsed time: 123.17 seconds 2488500746 -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones libguestfs lets you edit virtual machines. Supports shell scripting, bindings from many languages. http://libguestfs.org