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): |
