Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJerry <jvonau@shaw.ca>2013-02-28 14:25:54 (GMT)
committer Jerry <jvonau@shaw.ca>2013-02-28 14:25:54 (GMT)
commit9a6e0a92ee59d4a0becee265e7f8eb66379d8ba3 (patch)
tree49568c4e2a23210c53bdb41b070c54cb42d0331e
parent4c4a77151ac6aebb1fcea5a638316c154ce72a6e (diff)
revert kparted to losetup
-rw-r--r--modules/sd_card_image/image.50.makefs.sh24
1 files changed, 14 insertions, 10 deletions
diff --git a/modules/sd_card_image/image.50.makefs.sh b/modules/sd_card_image/image.50.makefs.sh
index 7f907ad..b259409 100644
--- a/modules/sd_card_image/image.50.makefs.sh
+++ b/modules/sd_card_image/image.50.makefs.sh
@@ -79,15 +79,20 @@ make_image()
$ROOT_PARTITION_START_BLOCK,,,
EOF
- loop=$(kpartx -l $img | head -n1 | awk '{print $5}' | sed -e 's:.*/::' )
- disk_loop=/dev/$loop
- boot_loop="/dev/mapper/${loop}p1"
- root_loop="/dev/mapper/${loop}p2"
+ disk_loop=$(losetup --show --find --partscan $img)
+ boot_loop="${disk_loop}p1"
+ root_loop="${disk_loop}p2"
+
+ # Work around occasional failure for loop partitions to appear
+ # http://marc.info/?l=linux-kernel&m=134271282127702&w=2
+ local i=0
+ while ! [ -e "$boot_loop" ]; do
+ partx -a -v $disk_loop
+ sleep 1
+ (( ++i ))
+ [ $i -ge 10 ] && break
+ done
- kpartx -a -v $img
-
- echo "mke2fs -O dir_index,^resize_inode -L Boot -F $boot_loop"
-
echo "Create filesystems..."
mke2fs -O dir_index,^resize_inode -L Boot -F $boot_loop
mount $boot_loop $BOOT
@@ -127,9 +132,8 @@ EOF
umount $ROOT
umount $BOOT
-
- kpartx -d $disk_loop || :
losetup -d $disk_loop || :
+
# FIXME: any value to running e2fsck now? maybe with -D ?
}