diff --git a/util/vm/build.py b/util/vm/build.py
index 5063fb1b9645b855c6b44c241c44a21536d12d46..eb0206cc25f48aaaaee49bf90956a9e8796342ac 100755
--- a/util/vm/build.py
+++ b/util/vm/build.py
@@ -728,9 +728,12 @@ def generateOVF( name, osname, osid, diskname, disksize, mem=1024, cpus=1,
 
 def qcow2size( qcow2 ):
     "Return virtual disk size (in bytes) of qcow2 image"
-    output = check_output( [ 'file', qcow2 ] )
-    assert 'QCOW' in output
-    bytes = int( re.findall( '(\d+) bytes', output )[ 0 ] )
+    output = check_output( [ 'qemu-img', 'info', qcow2 ] )
+    try:
+        assert 'format: qcow' in output
+        bytes = int( re.findall( '(\d+) bytes', output )[ 0 ] )
+    except:
+        raise Exception( 'Could not determine size of %s' % qcow2 )
     return bytes