diff --git a/image_creator/disk.py b/image_creator/disk.py
index 7e3b1667a3e85766fbbb31f8b07a35e90cb475d0..c367efd841b54aad4a5382e5aba1d26033862ee9 100644
--- a/image_creator/disk.py
+++ b/image_creator/disk.py
@@ -114,12 +114,12 @@ class Disk(object):
# Take a snapshot and return it to the user
self.out.output("Snapshotting media source...", False)
- size = blockdev('--getsize', sourcedev)
+ size = blockdev('--getsz', sourcedev)
cowfd, cow = tempfile.mkstemp()
os.close(cowfd)
self._add_cleanup(os.unlink, cow)
- # Create 1G cow sparse file
- dd('if=/dev/null', 'of=%s' % cow, 'bs=1k', 'seek=%d' % (1024 * 1024))
+ # Create cow sparse file
+ dd('if=/dev/null', 'of=%s' % cow, 'bs=512', 'seek=%d' % int(size))
cowdev = self._losetup(cow)
snapshot = uuid.uuid4().hex