image_signing: use sparse partition extraction [reland]
authorMike Frysinger <vapier@chromium.org>
Thu, 10 Sep 2015 20:18:03 +0000 (16:18 -0400)
committerchrome-bot <chrome-bot@chromium.org>
Tue, 5 Apr 2016 03:05:00 +0000 (20:05 -0700)
Often the partitions we extract have extra space in them, but the dd
utility will still write out the excess zeros.  That can mean we write
out hundreds of megs of data which could otherwise be skipped.  We thus
waste a good amount of I/O and storage.

For now, only use this flag when extracting a partition to a new file
as this should be safe (there's no pre-existing data to clobber/merge).

Now that the signers have been upgraded to Trusty, we can land this.

BUG=chromium:530730
TEST=`./signing_unittests.py` passes
BRANCH=None

Change-Id: I275973ebfc028c15a8d1ef33dd9b3dcf6ca726a2
Reviewed-on: https://chromium-review.googlesource.com/306420
Commit-Ready: Mike Frysinger <vapier@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Amey Deshpande <ameyd@google.com>
scripts/image_signing/common_minimal.sh

index fa56676..ad84c50 100644 (file)
@@ -246,7 +246,7 @@ extract_image_partition() {
   local offset=$(partoffset "$image" "$partnum")
   local size=$(partsize "$image" "$partnum")
   dd if=$image of=$output_file bs=512 skip=$offset count=$size \
-    conv=notrunc 2>/dev/null
+    conv=notrunc,sparse 2>/dev/null
 }
 
 # Replace a partition in an image from file