summaryrefslogtreecommitdiffstats
path: root/scripts/lib/mic/utils/fs_related.py
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/lib/mic/utils/fs_related.py')
-rw-r--r--scripts/lib/mic/utils/fs_related.py30
1 files changed, 29 insertions, 1 deletions
diff --git a/scripts/lib/mic/utils/fs_related.py b/scripts/lib/mic/utils/fs_related.py
index b9b9a97175..61617353eb 100644
--- a/scripts/lib/mic/utils/fs_related.py
+++ b/scripts/lib/mic/utils/fs_related.py
@@ -29,7 +29,7 @@ import uuid
29from mic import msger 29from mic import msger
30from mic.utils import runner 30from mic.utils import runner
31from mic.utils.errors import * 31from mic.utils.errors import *
32 32from mic.utils.oe.misc import *
33 33
34def find_binary_inchroot(binary, chroot): 34def find_binary_inchroot(binary, chroot):
35 paths = ["/usr/sbin", 35 paths = ["/usr/sbin",
@@ -280,6 +280,34 @@ class RawDisk(Disk):
280 def exists(self): 280 def exists(self):
281 return True 281 return True
282 282
283
284class DiskImage(Disk):
285 """
286 A Disk backed by a file.
287 """
288 def __init__(self, image_file, size):
289 Disk.__init__(self, size)
290 self.image_file = image_file
291
292 def exists(self):
293 return os.path.exists(self.image_file)
294
295 def create(self):
296 if self.device is not None:
297 return
298
299 blocks = self.size / 1024
300 if self.size - blocks * 1024:
301 blocks += 1
302
303 # create disk image
304 dd_cmd = "dd if=/dev/zero of=%s bs=1024 seek=%d count=1" % \
305 (self.image_file, blocks)
306 rc, out = exec_cmd(dd_cmd)
307
308 self.device = self.image_file
309
310
283class LoopbackDisk(Disk): 311class LoopbackDisk(Disk):
284 """A Disk backed by a file via the loop module.""" 312 """A Disk backed by a file via the loop module."""
285 def __init__(self, lofile, size): 313 def __init__(self, lofile, size):