From 33ee15be492c327b40d5da4fcf3adf0e19c75ada Mon Sep 17 00:00:00 2001 From: John Ogness Date: Fri, 4 May 2018 17:26:16 +0200 Subject: dd-multi.sh: unpack layers in parallel Start the untar processes in parallel. This will take advantage of file caching and should max out the USB bandwidth. This is important because some trainings (like Yocto) have huge layers. Signed-off-by: John Ogness --- lx-trainer-vm/dd-multi.sh | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/lx-trainer-vm/dd-multi.sh b/lx-trainer-vm/dd-multi.sh index e68e16a..2a0f9f9 100755 --- a/lx-trainer-vm/dd-multi.sh +++ b/lx-trainer-vm/dd-multi.sh @@ -147,14 +147,19 @@ for dest in $DESTS; do # remount home to /home umount ${TMP_ROOT}${dest}${HOMEPT} mount ${dest}${HOMEPT} ${TMP_ROOT}${dest}${ROOTPT}/home +done - # unpack layers - for tarball in $LAYERS; do - echo "unpacking $tarball to $dest" +# unpack layers (in parallel) +for tarball in $LAYERS; do + echo "unpacking layer: $tarball" + for dest in $DESTS; do tar -x -f $tarball --numeric-owner \ - -C ${TMP_ROOT}${dest}${ROOTPT} + -C ${TMP_ROOT}${dest}${ROOTPT} & done + wait +done +for dest in $DESTS; do # unmount partitions umount ${TMP_ROOT}${dest}${ROOTPT}/home umount ${TMP_ROOT}${dest}${ROOTPT} -- cgit v1.2.3