From 7f21427aca5df81d8881027fd98f71b821cf31d7 Mon Sep 17 00:00:00 2001 From: Ed Bartosh Date: Thu, 28 Apr 2016 13:58:10 +0300 Subject: wic: use sparse_copy to copy partitions Copied partition images into final partitioned image using sparse_copy API. This method preserves sparseness of the final image. It also makes wic much faster, as unmapped blocks of the partition images are not copied. [YOCTO #9099] Signed-off-by: Ed Bartosh Signed-off-by: Richard Purdie --- scripts/lib/wic/utils/partitionedfs.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/scripts/lib/wic/utils/partitionedfs.py b/scripts/lib/wic/utils/partitionedfs.py index 4170ec1918..534635b2ac 100644 --- a/scripts/lib/wic/utils/partitionedfs.py +++ b/scripts/lib/wic/utils/partitionedfs.py @@ -22,6 +22,7 @@ import os from wic import msger from wic.utils.errors import ImageError from wic.utils.oe.misc import exec_cmd, exec_native_cmd +from wic.filemap import sparse_copy # Overhead of the MBR partitioning scheme (just one sector) MBR_OVERHEAD = 1 @@ -343,10 +344,7 @@ class Image(object): source = part['source_file'] if source: # install source_file contents into a partition - cmd = "dd if=%s of=%s bs=%d seek=%d count=%d conv=notrunc" % \ - (source, image_file, self.sector_size, - part['start'], part['size']) - exec_cmd(cmd) + sparse_copy(source, image_file, part['start'] * self.sector_size) msger.debug("Installed %s in partition %d, sectors %d-%d, " "size %d sectors" % \ -- cgit 1.2.3-korg