slitaz-tools diff installer/slitaz-installer @ rev 488

slitaz-installer, bootfloppybox: speedup loram extraction
author Pascal Bellard <pascal.bellard@slitaz.org>
date Sun Apr 25 17:23:10 2010 +0200 (2010-04-25)
parents 860fa153524a
children 423776a7bd8b
line diff
     1.1 --- a/installer/slitaz-installer	Sat Apr 24 11:43:47 2010 +0200
     1.2 +++ b/installer/slitaz-installer	Sun Apr 25 17:23:10 2010 +0200
     1.3 @@ -498,21 +498,10 @@
     1.4  # This is a loram rootfs.gz, skip loram bootstrap and extract
     1.5  extract_first_loramfs()
     1.6  {
     1.7 -	hexdump -C $1 | grep " 30 37 30 37 " | while read ofs rem; do
     1.8 -		ofs=$((0x$ofs / 4))
     1.9 -		for j in 1 2 3 4; do
    1.10 -			tag=$(dd if=$1 bs=4 skip=$ofs count=2 2> /dev/null)
    1.11 -			if [ "07070100" != "$tag" ]; then
    1.12 -				ofs=$(($ofs + 1))
    1.13 -				continue
    1.14 -			fi
    1.15 -			dd if=$1 skip=$(($ofs / 1024)) bs=4k count=1 2> /dev/null | \
    1.16 -			( dd skip=$(($ofs % 1024)) bs=4 2> /dev/null ; \
    1.17 -			  dd if=$1 skip=$((1 + ($ofs / 1024) )) bs=4k ) | \
    1.18 -				extract_loramfs			  
    1.19 -			break 2
    1.20 -		done
    1.21 -	done
    1.22 +	ofs=$(awk '/07070100/ { o+=index($0,"07070100"); print o/4 ; exit } { o+=1+length() }' < $1)
    1.23 +	dd if=$1 skip=$(($ofs / 1024)) bs=4k count=1 2> /dev/null | \
    1.24 +	( dd skip=$(($ofs % 1024)) bs=4 2> /dev/null ; \
    1.25 +	  dd if=$1 skip=$((1 + ($ofs / 1024) )) bs=4k ) | extract_loramfs			  
    1.26  }
    1.27  
    1.28  # Extract lzma'ed or gziped rootfs.