diff options
Diffstat (limited to 'scripts/lib/mic/utils/fs_related.py')
-rw-r--r-- | scripts/lib/mic/utils/fs_related.py | 30 |
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 | |||
29 | from mic import msger | 29 | from mic import msger |
30 | from mic.utils import runner | 30 | from mic.utils import runner |
31 | from mic.utils.errors import * | 31 | from mic.utils.errors import * |
32 | 32 | from mic.utils.oe.misc import * | |
33 | 33 | ||
34 | def find_binary_inchroot(binary, chroot): | 34 | def 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 | |||
284 | class 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 | |||
283 | class LoopbackDisk(Disk): | 311 | class 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): |