[PATCH 2/2] sd_card_image, create a psuedo-random pattern fill for use by zhashfs
James Cameron
quozl at laptop.org
Thu Apr 21 00:46:52 EDT 2011
Instead of creating a sparse image file into which the filesystems are
created, create the image file from a psuedo-random pattern of 4096
bytes, so that zhashfs may skip the unused blocks.
---
modules/sd_card_image/image.50.makefs.sh | 11 ++++++++++-
modules/sd_card_image/postimage.50.makezd.sh | 2 +-
2 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/modules/sd_card_image/image.50.makefs.sh b/modules/sd_card_image/image.50.makefs.sh
index c9ed3b8..6e61eb7 100644
--- a/modules/sd_card_image/image.50.makefs.sh
+++ b/modules/sd_card_image/image.50.makefs.sh
@@ -37,7 +37,16 @@ make_image()
[ -z "$ext" ] && ext="zd"
local img=$intermediatesdir/$(image_name).$ext.disk.img
- dd if=/dev/zero of=$img bs=$BLOCK_SIZE count=0 seek=$(($image_size / $BLOCK_SIZE))
+ dd if=/dev/urandom of=$img.fill bs=4096 count=1 2>/dev/null
+ rm -f $img.fill.2mb
+ for x in $(seq 512); do cat $img.fill >> $img.fill.2mb; done
+ local n=$(($image_size / (1048576 * 2) + 1))
+ rm -f $img
+ dd if=/dev/zero of=$img bs=1M count=1 2>/dev/null
+ for x in $(seq $n); do cat $img.fill.2mb >> $img; done
+ truncate --size=$image_size $img
+ rm -f $img.fill.2mb
+
/sbin/sfdisk -S 32 -H 32 --force -uS $img <<EOF
8192,131072,83,*
139264,,,
diff --git a/modules/sd_card_image/postimage.50.makezd.sh b/modules/sd_card_image/postimage.50.makezd.sh
index a7338d2..c427626 100644
--- a/modules/sd_card_image/postimage.50.makezd.sh
+++ b/modules/sd_card_image/postimage.50.makezd.sh
@@ -23,6 +23,7 @@ for line in $(env); do
if [[ "$make_zd" == 1 ]]; then
echo "Making ZD image for $output_name..."
$bindir/zhashfs 0x20000 sha256 $diskimg $output.zsp $output
+ rm -f $diskimg.fill
echo "Creating MD5sum of $output_name..."
pushd $outputdir >/dev/null
@@ -41,4 +42,3 @@ for line in $(env); do
fi
done
IFS=$oIFS
-
--
1.7.4.1
--
James Cameron
http://quozl.linux.org.au/
More information about the Devel
mailing list