[Libguestfs] Speeding up Windows upload script

Richard W.M. Jones rjones at redhat.com
Fri Jul 29 12:23:17 UTC 2011


Hi Alon, further to the discussion on IRC ...

I would try a script like the one below.  Highlights:

* It avoids using the '-i' option, because that can be slow.  The down
  side is that you have to specify which partition contains the C:
  drive because that information is no longer available from
  inspection.

* We only use guestfish once, so you don't have to repeatedly start up
  the appliance.

* Takes 4 seconds to run on my machine.

----------------------------------------------------------------------
#!/bin/bash -

# Note: replace /dev/sda2 with the C:\ drive

guestfish -a /tmp/win.qcow2 -m /dev/sda2 <<'EOF'

copy-in /tmp/driver.sys win:/windows/system32/
copy-in /tmp/driver.inf win:/windows/system32/

-rm-rf win:/Temp/testprogs
-mkdir win:/Temp
copy-in /tmp/testprogs win:/Temp/

EOF
----------------------------------------------------------------------

I tested this by doing:

$ qemu-img create -f qcow2 -o backing_file=/dev/vg_pin/Win7x32 win.qcow2
Formatting 'win.qcow2', fmt=qcow2 size=21474836480 backing_file='/dev/vg_pin/Win7x32' encryption=off cluster_size=65536 

and creating some dummy driver.sys, driver.inf, testprogs directory
(about 1 MB of data).

I then tested the script above and it took 4 seconds on my machine.

If it's substantially slower for you, let me know.  I recommend also
using the guestfish -x option so that you get to see all the
libguestfs API calls that guestfish is making.

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
virt-top is 'top' for virtual machines.  Tiny program with many
powerful monitoring features, net stats, disk stats, logging, etc.
http://et.redhat.com/~rjones/virt-top




More information about the Libguestfs mailing list