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.