diff options
Diffstat (limited to 'scripts/lib/wic/plugins/imager/direct.py')
| -rw-r--r-- | scripts/lib/wic/plugins/imager/direct.py | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/scripts/lib/wic/plugins/imager/direct.py b/scripts/lib/wic/plugins/imager/direct.py index 2d06c242b6..1f65a7afe5 100644 --- a/scripts/lib/wic/plugins/imager/direct.py +++ b/scripts/lib/wic/plugins/imager/direct.py | |||
| @@ -428,6 +428,21 @@ class PartitionedImage(): | |||
| 428 | # increase the offset so we actually start the partition on right alignment | 428 | # increase the offset so we actually start the partition on right alignment |
| 429 | self.offset += align_sectors | 429 | self.offset += align_sectors |
| 430 | 430 | ||
| 431 | if part.offset is not None: | ||
| 432 | offset = (part.offset * 1024) // self.sector_size | ||
| 433 | |||
| 434 | if offset * self.sector_size != part.offset * 1024: | ||
| 435 | raise WicError("Could not place %s%s at offset %dK with sector size %d" % (part.disk, self.numpart, part.offset, self.sector_size)) | ||
| 436 | |||
| 437 | delta = offset - self.offset | ||
| 438 | if delta < 0: | ||
| 439 | raise WicError("Could not place %s%s at offset %dK: next free sector is %d (delta: %d)" % (part.disk, self.numpart, part.offset, offset, delta)) | ||
| 440 | |||
| 441 | logger.debug("Skipping %d sectors to place %s%s at offset %dK", | ||
| 442 | delta, part.disk, self.numpart, part.offset) | ||
| 443 | |||
| 444 | self.offset = offset | ||
| 445 | |||
| 431 | part.start = self.offset | 446 | part.start = self.offset |
| 432 | self.offset += part.size_sec | 447 | self.offset += part.size_sec |
| 433 | 448 | ||
