diff --git a/image_creator/bundle_volume.py b/image_creator/bundle_volume.py
index 9f0827607248cf24ab6b847d1d9f95fd6d679736..27839fa82dc5736de920e90a4a2ec592bd644022 100644
--- a/image_creator/bundle_volume.py
+++ b/image_creator/bundle_volume.py
@@ -33,7 +33,6 @@
 
 import os
 import re
-import uuid
 import tempfile
 import time
 from collections import namedtuple
@@ -45,7 +44,6 @@ from image_creator.util import get_command
 from image_creator.util import FatalError
 
 findfs = get_command('findfs')
-truncate = get_command('truncate')
 dd = get_command('dd')
 dmsetup = get_command('dmsetup')
 losetup = get_command('losetup')
@@ -320,7 +318,7 @@ class BundleVolume():
                  '/boot/grub/menu.lst',
                  '/boot/grub/grub.conf']
 
-        orig = dict(map(lambda p: (p.number, blkid( '-s', 'UUID', '-o',
+        orig = dict(map(lambda p: (p.number, blkid('-s', 'UUID', '-o',
             'value', p.path).stdout.strip()), self.disk.partitions))
 
         for f in map(lambda f: target + f, files):
@@ -392,14 +390,16 @@ class BundleVolume():
                 self._unmap_partition(dev)
             losetup('-d', loop)
 
-    def create_image(self):
+    def create_image(self, image):
 
-        image = '/mnt/%s.diskdump' % uuid.uuid4().hex
-
-        disk_size = self.disk.device.getLength() * self.disk.device.sectorSize
+        size = self.disk.device.getLength() * self.disk.device.sectorSize
 
         # Create sparse file to host the image
-        truncate("-s", "%d" % disk_size, image)
+        fd = os.open(image, os.O_WRONLY | os.O_CREAT)
+        try:
+            os.ftruncate(fd, size)
+        finally:
+            os.close(fd)
 
         self._create_partition_table(image)
 
diff --git a/image_creator/disk.py b/image_creator/disk.py
index 0c1f5580486e1b65af9aeec7b3d7da2ca7c473cc..8a06f78a506634b71714227c32df929fd4879835 100644
--- a/image_creator/disk.py
+++ b/image_creator/disk.py
@@ -82,8 +82,14 @@ class Disk(object):
     def _dir_to_disk(self):
         if self.source == '/':
             bundle = BundleVolume(self.out, self.meta)
-            image = bundle.create_image()
-            self._add_cleanup(os.unlink, image)
+            image = '/var/tmp/%s.diskdump' % uuid.uuid4().hex
+
+            def check_unlink(path):
+                if os.path.exists(path):
+                    os.unlink(path)
+
+            self._add_cleanup(check_unlink, image)
+            bundle.create_image(image)
             return self._losetup(image)
         raise FatalError("Using a directory as media source is supported")